*Given a sequence of character that is not the alphabetically last permutation of those characters, generate the alphabetically next permutation.*

I recently noticed a lot of people using the J programming language, so I thought I'd try it out. I have no intention of learning it properly or thoroughly, I just want to get a very basic understanding so that I can use it when necessary.

J can be used to perform many operations based on permutations. These are some of the ones I've discovered.

Find the next permutation of a string:

` string=: 'QWERTY'`

` 1 A. string`

`QWERYT`

Show the current and next four permutations:

` string=: 'QWERTY'`

` (i.5) A. string`

`QWERTY`

`QWERYT`

`QWETRY`

`QWETYR`

`QWEYRT`

Show the 9th permutation of the numbers 0, 1, 2, 3:

` 9 A. i.4`

`1 2 3 0`

Show all permutations of 1, 2, 3:

(replace the factorial with the amount of numbers)

` (i.!3) A. 1+ i.3`

`1 2 3`

`...`

`3 2 1`

Find the ninth permutation of the fourth permutation:

` (9) A. (4) A. 'HELLO'`

`HOLLE`

- May 16, 2005 - Added solution 1.

© 2004-17 robson | cc unless stated