All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Algorithms
Permutations (Posted on 2003-07-02) Difficulty: 3 of 5
Find an algorithm (subroutine) that when called repeatedly with the same character-string variable that is initialized with n characters, all different, will cycle through all the permutations of those n characters, so that for example, when called 24 times with a string of length 4, will have cycled that string through all 24 permutations and returned it to its initial state.

See The Solution Submitted by Charlie    
Rating: 4.0000 (3 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution two ways | Comment 4 of 14 |
here's one subroutine in loose code

list perms(list[n])
{
state int i = 0

element e = list[ (i/(n-1)!) % n ]
list remainder = list[n] - e

if(remainder empty) {
i = i + 1
return e
}
else {
return e + perms(remainder)
}
}

ofcourse a subroutine with state is an example of imperative programming trash. try for example Haskell:

perms x = [ a:y | a <- x; y <- perms (x // [a]) ]

for something much neater
  Posted by Cheradenine on 2003-07-03 05:54:01
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (10)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information