Best shuffle: Difference between revisions

Added 11l
(Best shuffle en FreeBASIC)
(Added 11l)
Line 33:
{{Template:Strings}}
<br><br>
 
=={{header|11l}}==
{{trans|Python}}
 
<lang 11l>F count(w1, wnew)
R sum(zip(w1, wnew).map((c1, c2) -> Int(c1 == c2)))
 
F best_shuffle(w)
V wnew = Array(w)
V n = w.len
V rangei = Array(0 .< n)
V rangej = Array(0 .< n)
random:shuffle(&rangei)
random:shuffle(&rangej)
L(i) rangei
L(j) rangej
I i != j & wnew[j] != wnew[i] & w[i] != wnew[j] & w[j] != wnew[i]
swap(&wnew[j], &wnew[i])
L.break
V wnew_s = wnew.join(‘’)
R (wnew_s, count(w, wnew_s))
 
V test_words = [‘tree’, ‘abracadabra’, ‘seesaw’, ‘elk’, ‘grrrrrr’, ‘up’, ‘a’,
‘antidisestablishmentarianism’, ‘hounddogs’,
‘aardvarks are ant eaters’, ‘immediately’, ‘abba’]
L(w) test_words
V (wnew, c) = best_shuffle(w)
print(‘#29, #<29 ,(#.)’.format(w, wnew, c))</lang>
 
{{out}}
<pre>
tree, eert ,(0)
abracadabra, raacbbaraad ,(0)
seesaw, wsaees ,(0)
elk, kel ,(0)
grrrrrr, rrrrrrg ,(5)
up, pu ,(0)
a, a ,(1)
antidisestablishmentarianism, tsesidatbslmiansnitreiamihan ,(0)
hounddogs, ougdhosnd ,(0)
aardvarks are ant eaters, re aar anarsdtrsktaeav e ,(0)
immediately, ytidammeiel ,(0)
abba, baab ,(0)
</pre>
 
=={{header|Ada}}==
1,481

edits