/* do.tc - lrb - 1/2012 do [ /* permutations int z(4*24-1) /* load permutations z(00)=0;z(01)=1;z(02)=2;z(03)=3 /* 0 z(04)=0;z(05)=1;z(06)=3;z(07)=2 /* 1 z(08)=0;z(09)=2;z(10)=1;z(11)=3 z(12)=0;z(13)=2;z(14)=3;z(15)=1 z(16)=0;z(17)=3;z(18)=2;z(19)=1 z(20)=0;z(21)=3;z(22)=1;z(23)=2 z(24)=1;z(25)=0;z(26)=2;z(27)=3 z(28)=1;z(29)=0;z(30)=3;z(31)=2 z(32)=1;z(33)=3;z(34)=2;z(35)=0 z(36)=1;z(37)=3;z(38)=0;z(39)=2 z(40)=1;z(41)=2;z(42)=3;z(43)=0 z(44)=1;z(45)=2;z(46)=0;z(47)=3 z(48)=2;z(49)=0;z(50)=1;z(51)=3 z(52)=2;z(53)=0;z(54)=3;z(55)=1 z(56)=2;z(57)=3;z(58)=0;z(59)=1 z(60)=2;z(61)=3;z(62)=1;z(63)=0 z(64)=2;z(65)=1;z(66)=0;z(67)=3 z(68)=2;z(69)=1;z(70)=3;z(71)=0 z(72)=3;z(73)=0;z(74)=1;z(75)=2 z(76)=3;z(77)=0;z(78)=2;z(79)=1 z(80)=3;z(81)=1;z(82)=0;z(83)=2 z(84)=3;z(85)=1;z(86)=2;z(87)=0 z(88)=3;z(89)=2;z(90)=0;z(91)=1 /* 22 z(92)=3;z(93)=2;z(94)=1;z(95)=0 /* 23 /* there appear to be C(24,12) = 2,704,156 solutions! /* this program gives you 24 of them /* sets int a(3),b(3),c(3),d(3),e(3),f(3),g(3),h(3),i(3),j(3),k(3),l(3) /* dice int p(11),q(11),r(11),s(11) int m,t;t=1 /* load sets for (m=0;m<=3;++m) [a(m)=t;++t] for (m=0;m<=3;++m) [b(m)=t;++t] for (m=0;m<=3;++m) [c(m)=t;++t] for (m=0;m<=3;++m) [d(m)=t;++t] for (m=0;m<=3;++m) [e(m)=t;++t] for (m=0;m<=3;++m) [f(m)=t;++t] for (m=0;m<=3;++m) [g(m)=t;++t] for (m=0;m<=3;++m) [h(m)=t;++t] for (m=0;m<=3;++m) [i(m)=t;++t] for (m=0;m<=3;++m) [j(m)=t;++t] for (m=0;m<=3;++m) [k(m)=t;++t] for (m=0;m<=3;++m) [l(m)=t;++t] pl "do.tc - lrb - 1/2012";pl "" /* generate solutions int n for (n=0;n/4<24;n=n+4) [ p(11)=l(z(fn(n))) q(11)=l(z(fn(n+1))) r(11)=l(z(fn(n+2))) s(11)=l(z(fn(n+3))) p(10)=k(z(fn(n+4))) q(10)=k(z(fn(n+5))) r(10)=k(z(fn(n+6))) s(10)=k(z(fn(n+7))) p(9)=j(z(fn(n+8))) q(9)=j(z(fn(n+9))) r(9)=j(z(fn(n+10))) s(9)=j(z(fn(n+11))) p(8)=i(z(fn(n+12))) q(8)=i(z(fn(n+13))) r(8)=i(z(fn(n+14))) s(8)=i(z(fn(n+15))) p(7)=h(z(fn(n+16))) q(7)=h(z(fn(n+17))) r(7)=h(z(fn(n+18))) s(7)=h(z(fn(n+19))) p(6)=g(z(fn(n+20))) q(6)=g(z(fn(n+21))) r(6)=g(z(fn(n+22))) s(6)=g(z(fn(n+23))) p(5)=f(z(fn(n+24))) q(5)=f(z(fn(n+25))) r(5)=f(z(fn(n+26))) s(5)=f(z(fn(n+27))) p(4)=e(z(fn(n+28))) q(4)=e(z(fn(n+29))) r(4)=e(z(fn(n+30))) s(4)=e(z(fn(n+31))) p(3)=d(z(fn(n+32))) q(3)=d(z(fn(n+33))) r(3)=d(z(fn(n+34))) s(3)=d(z(fn(n+35))) p(2)=c(z(fn(n+36))) q(2)=c(z(fn(n+37))) r(2)=c(z(fn(n+38))) s(2)=c(z(fn(n+39))) p(1)=b(z(fn(n+40))) q(1)=b(z(fn(n+41))) r(1)=b(z(fn(n+42))) s(1)=b(z(fn(n+43))) p(0)=a(z(fn(n+44))) q(0)=a(z(fn(n+45))) r(0)=a(z(fn(n+46))) s(0)=a(z(fn(n+47))) showem n/4,p,q,r,s ] ] showem int ss,p(0),q(0),r(0),s(0) [ int i,ac;ac=0 pl "solution number ";pn ss;pl "";pl "" for (i=0;i<=11;++i) [pn p(i);ac=ac+p(i)];ps " total = ";pn ac;pl "";ac=0 for (i=0;i<=11;++i) [pn q(i);ac=ac+q(i)];ps " total = ";pn ac;pl "";ac=0 for (i=0;i<=11;++i) [pn r(i);ac=ac+r(i)];ps " total = ";pn ac;pl "";ac=0 for (i=0;i<=11;++i) [pn s(i);ac=ac+s(i)];ps " total = ";pn ac;pl "";ac=0 ] /* helper function fn int i [ if (i<4*24) return i else return i%96 ]