Best shuffle: Difference between revisions

J: simplify
(→‎{{header|J}}: different approach - see Talk)
(J: simplify)
Line 64:
=={{header|J}}==
 
BruteBased forceon Dan Bron's approach:
 
<lang j>bestShuf =: verb define
yy=. (\:#&>)@:(<@I.@=) y
y {~ C. (;yy) </.~ (i.#y) |~ #>{. yy
z=.0 $ a:
while. 1 < #yy do.
r =. {.&>{.yy
yy =. (}.&.>{.yy),}.yy
q =. {.&> {. }.yy
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
)
 
Line 93 ⟶ 80:
 
<lang j> fmtBest&>;:'abracadabra seesaw elk grrrrrr up a'
abracadabra, baaracadrabbdabararaac (0)
seesaw, essewaeawess (0)
elk, lke (0)
grrrrrr, rgrrrrr (5)
6,962

edits