Best shuffle: Difference between revisions

→‎{{header|J}}: different approach - see Talk
m (→‎{{header|REXX}}: whitespace)
(→‎{{header|J}}: different approach - see Talk)
Line 66:
Brute force approach:
 
<lang j>bestShuf =:3 :0verb define
target yy=. 0 (\:#&>. )@:({<@I. - +/@}.=) \:~ #/.~y
n z=._10 [$ lim=.!#ya:
while.lim >1 n=.n+1< #yy do.
r r=.n A{. y&>{.yy
yy =. (}.&.>{.yy),}.yy
if.target=+/r=y do.return.end.
q =. {.&> {. }.yy
end.
yy =. ({.yy),(}.&.>{.}.yy),}.}.yy
z =. z,<r,q
yy =. yy-.a:
end.
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
)
 
Anonymous user