Best shuffle: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: added REXX language.)
(J)
Line 61: Line 61:
assert(bestShuffle("a") == 1);
assert(bestShuffle("a") == 1);
}</lang>
}</lang>

=={{header|J}}==

Brute force approach:

<lang j>bestShuf=:3 :0
target=. 0 >. ({. - +/@}.) \:~ #/.~y
n=._1 [ lim=.!#y
while.lim > n=.n+1 do.
r=.n A. y
if.target=+/r=y do.return.end.
end.
)

fmtBest=:3 :0
b=. bestShuf y
y,', ',b,' (',')',~":+/b=y
)
</lang>

Example:

<lang j> fmtBest&>;:'abracadabra seesaw elk grrrrrr up a'
abracadabra, baaracadrab (0)
seesaw, essewa (0)
elk, lke (0)
grrrrrr, rgrrrrr (5)
up, pu (0)
a, a (1)
</lang>


=={{header|PicoLisp}}==
=={{header|PicoLisp}}==