Just another update
This commit is contained in:
parent
a25938f123
commit
00a190b0a6
6591 changed files with 94363 additions and 23227 deletions
|
|
@ -1,35 +1,37 @@
|
|||
void main() {
|
||||
import std.stdio, std.string, std.algorithm, std.range, std.conv;
|
||||
|
||||
const perms = "ABCD CABD ACDB DACB BCDA ACBD ADCB CDAB DABC
|
||||
BCAD CADB CDBA CBAD ABDC ADBC BDCA DCBA BACD
|
||||
BADC BDAC CBDA DBCA DCAB".split;
|
||||
immutable perms = "ABCD CABD ACDB DACB BCDA ACBD ADCB CDAB DABC
|
||||
BCAD CADB CDBA CBAD ABDC ADBC BDCA DCBA BACD
|
||||
BADC BDAC CBDA DBCA DCAB".split;
|
||||
|
||||
// Version 1: test all permutations.
|
||||
const permsSet = perms.zip(0.repeat).assocArray;
|
||||
auto perm = cast(ubyte[])perms[0].dup;
|
||||
immutable permsSet = perms
|
||||
.map!representation
|
||||
.zip(true.repeat)
|
||||
.assocArray;
|
||||
auto perm = perms[0].dup.representation;
|
||||
do {
|
||||
if (cast(char[])perm !in permsSet)
|
||||
writeln(cast(char[])perm);
|
||||
if (perm !in permsSet)
|
||||
writeln(perm.map!(c => char(c)));
|
||||
} while (perm.nextPermutation);
|
||||
|
||||
// Version 2: XOR all the ASCII values, the uneven one gets
|
||||
// flushed out. Based on Perl 6 (via Go).
|
||||
enum int len = 4;
|
||||
// Version 2: xor all the ASCII values, the uneven one
|
||||
// gets flushed out. Based on Perl 6 (via Go).
|
||||
enum len = 4;
|
||||
char[len] b = 0;
|
||||
foreach (immutable p; perms)
|
||||
b[] ^= p[];
|
||||
b.writeln;
|
||||
|
||||
// Version 3 : Sum ASCII values.
|
||||
// Version 3: sum ASCII values.
|
||||
immutable rowSum = perms[0].sum;
|
||||
len
|
||||
.iota
|
||||
.map!(i => to!char(rowSum - perms.transversal(i).sum % rowSum))
|
||||
.writeln;
|
||||
|
||||
// Version 4: some sort of checksum, Java translation.
|
||||
// maxCode will be 36.
|
||||
// Version 4: a checksum, Java translation. maxCode will be 36.
|
||||
immutable maxCode = reduce!q{a * b}(len - 1, iota(3, len + 1));
|
||||
|
||||
foreach (immutable i; 0 .. len) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue