Actually, it looks like the only problem with the site was that posting a 21k long line of text fails.
That said, when I compare my result with the result you displayed, I've decided I don't understand what you are posting for cycle lengths. Can you clarify? Thanks, -- Raul On Mon, Jun 15, 2015 at 12:28 PM, Raul Miller <[email protected]> wrote: > This "perfect shuffle" algorithm can be implemented as: > shuf=: /: $ /:@$ 0 1"_ > > The number of iterations needed to cycle back to the start for a > permutation of length n is: > *./#@>C.shuf i.n > > I'll update the rosettacode page with these details after it comes back up. > > Thanks, > > -- > Raul > > On Mon, Jun 15, 2015 at 12:11 PM, David Lambert <[email protected]> wrote: >> http://rosettacode.org/wiki/Perfect_shuffle#J >> Using the "1 2 many" counting system, magic_cycle applied to the required >> solution set runs for eternity allocating and copying memory most of which >> is used only for the final tally. I've written an explicit version that >> maintains the start and current deck as well as the count which runs in a >> few minutes, not included to avoid clutter. >> >> Until =: conjunction def 'u^:(0-:v)^:_' >> perfect_shuffle =: [: , [: |: ([\~ (0 _1r2 p. #)) >> 'perfect shuffling check' assert 'adbecf' -: perfect_shuffle 'abcdef' >> >> Shuffles =: (@:{:)(,`)(`:6) NB. appends next state caused by a shuffling >> verb >> >> f =: perfect_shuffle Shuffles >> magic_shuffle =: f Until ({. -: {:) @: f @: ,: >> >> magic_shuffle 'abcdef' >> abcdef >> adbecf >> aedcbf >> acebdf >> abcdef >> >> CYCLE=: (,. ([: <: ([: # [: magic_shuffle i.)"0)) +:>:i.5000]50 >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
