Best shuffle: Difference between revisions
Content added Content deleted
(Best shuffle en FreeBASIC) |
Alextretyak (talk | contribs) (Added 11l) |
||
Line 33: | Line 33: | ||
{{Template:Strings}} |
{{Template:Strings}} |
||
<br><br> |
<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}}== |
=={{header|Ada}}== |