Re: Permutation Handler
Re: Permutation Handler
- Subject: Re: Permutation Handler
- From: Jed Verity <email@hidden>
- Date: Thu, 15 Feb 2001 09:18:02 -0800
That's genius, man! However, it would appear that this handler actually only
generates half of the possible permutations (with a duplication of the first
half). See the results of {1,2,3} using permutateList:
{{1, 3, 2}, {1, 3, 2}, {2, 3, 1}, {2, 3, 1}, {3, 2, 1}, {3, 2, 1}}
which should be:
{{1, 2, 3}, {1, 3, 2}, {2 ,1 , 3}, {2, 3, 1}, {3, 2, 1}, {3, 1, 2}}
I tried to go in and make adjustments but my brain was quickly scrambled.
Any further insights would be GREATLY appreciated.
Thanks a million!
Jed
On 2/15/01 8:58 AM, Arthur J Knapp uttered these immortal words:
>
set integerList to {1, 2, 3, 4}
>
>
set thePermutations to {} -- collect them in here
>
>
permutateList(integerList, 1, thePermutations)
>
>
thePermutations
>
-- > {{1, 2, 4, 3}, {1, 2, 4, 3}, ...
>
>
>
on permutateList(lst, x, col)
>
if (x = length of lst) then
>
set end of col to lst
>
else
>
copy lst to lst -- don't pass ref/data share
>
repeat with i from x to length of lst
>
set {lst's item x, lst's item i} to ,
>
{lst's item i, lst's item x}
>
permutateList(lst, x + 1, col)
>
end repeat
>
end if
>
end permutateList
~)~)~)~)~)~)~)~)~)~)~)~)~)
Jed Verity