Anonymous user
Best shuffle: Difference between revisions
→Simpler Version: update
m (→{{header|Go}}: added more output) |
(→Simpler Version: update) |
||
Line 1,053:
===Simpler Version===
Translation of [[Best_shuffle#Icon_and_Unicon|Icon]] via [[Best_shuffle#AWK|AWK]]
<lang d>import std.stdio, std.random, std.algorithm, std.conv, std.range,
auto bestShuffle(S)(in
static if (isNarrowString!S)
auto s = o.dup;▼
else alias orig o;
▲ auto s = o.dup;
randomShuffle(s);
foreach (i, ref ci; s) {
if (ci != o[i])
Line 1,069 ⟶ 1,072:
}
}
}
▲ return tuple(s, zip(s, o).count!q{ a[0] == a[1] }());
▲} unittest {
assert(bestShuffle("abracadabra"d)[1] == 0);
assert(bestShuffle("immediately"d)[1] == 0);
Line 1,082 ⟶ 1,086:
}
void main(
if (args.length > 1) {
string entry = join(args[1 .. $]
auto res =
writefln("%s : %s (%
}
}</lang>
===Faster Version===
<lang d>import std.stdio, std.algorithm, std.range;
|