Best shuffle: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: whitespace) |
(→{{header|J}}: different approach - see Talk) |
||
Line 66: | Line 66: | ||
Brute force approach: |
Brute force approach: |
||
<lang j>bestShuf=: |
<lang j>bestShuf =: verb define |
||
yy=.(\:#&>)@:(<@I.@=) y |
|||
z=.0 $ a: |
|||
while. 1 < #yy do. |
|||
r =. {.&>{.yy |
|||
yy =. (}.&.>{.yy),}.yy |
|||
if.target=+/r=y do.return.end. |
|||
q =. {.&> {. }.yy |
|||
⚫ | |||
yy =. ({.yy),(}.&.>{.}.yy),}.}.yy |
|||
z =. z,<r,q |
|||
yy =. yy-.a: |
|||
⚫ | |||
z=. z , > {. 'b f'=.((2#a:)&, </.~ 1 0 , 1<#&>) yy |
|||
w=. y C.~ z |
|||
w C.~ :: [ f ,&.> w (~:/ i. 1:)"1 0 y {~ f =. ;f |
|||
) |
) |
||