(* Vaclav Kotesovec 2011, based on article by R. Tauraso, 2006 *) << Combinatorica` (* semi=2 Rook + Leaper[d,d] *) (* semi=1 Rook + semi-Leaper[d,d] *) (* version for d=6 *) semi = 2; d = 6; Table[If[n >= d, suma = 0; n1 = 0; Do[If[Mod[i - 1, d] == 0, n1 = n1 + 1], {i, 1, n}]; n2 = 0; Do[If[Mod[i - 2, d] == 0, n2 = n2 + 1], {i, 1, n}]; n3 = 0; Do[If[Mod[i - 3, d] == 0, n3 = n3 + 1], {i, 1, n}]; n4 = 0; Do[If[Mod[i - 4, d] == 0, n4 = n4 + 1], {i, 1, n}]; n5 = 0; Do[If[Mod[i - 5, d] == 0, n5 = n5 + 1], {i, 1, n}]; n6 = 0; Do[If[Mod[i - 6, d] == 0, n6 = n6 + 1], {i, 1, n}]; Do[Do[Do[ Do[Do[Do[r = r1 + r2 + r3 + r4 + r5 + r6; Do[Do[Do[Do[Do[Do[c = c1 + c2 + c3 + c4 + c5 + c6; part1 = (-1)^r*semi^c*(n - r - c)!* Binomial[n1 - r1, c1]*Binomial[n2 - r2, c2]* Binomial[n3 - r3, c3]*Binomial[n4 - r4, c4]* Binomial[n5 - r5, c5]*Binomial[n6 - r6, c6]; If[c1 == 0, If[r1 == 0, nl1 = 1, nl1 = 0];, nl1 = NumberOfCompositions[r1 - c1, c1];]; If[c2 == 0, If[r2 == 0, nl2 = 1, nl2 = 0];, nl2 = NumberOfCompositions[r2 - c2, c2];]; If[c3 == 0, If[r3 == 0, nl3 = 1, nl3 = 0];, nl3 = NumberOfCompositions[r3 - c3, c3];]; If[c4 == 0, If[r4 == 0, nl4 = 1, nl4 = 0];, nl4 = NumberOfCompositions[r4 - c4, c4];]; If[c5 == 0, If[r5 == 0, nl5 = 1, nl5 = 0];, nl5 = NumberOfCompositions[r5 - c5, c5];]; If[c6 == 0, If[r6 == 0, nl6 = 1, nl6 = 0];, nl6 = NumberOfCompositions[r6 - c6, c6];]; Do[Do[Do[Do[Do[Do[ If[c1 == 0, z1 = {};, z1 = Compositions[r1 - c1, c1][[l1]];]; If[c2 == 0, z2 = {};, z2 = Compositions[r2 - c2, c2][[l2]];]; If[c3 == 0, z3 = {};, z3 = Compositions[r3 - c3, c3][[l3]];]; If[c4 == 0, z4 = {};, z4 = Compositions[r4 - c4, c4][[l4]];]; If[c5 == 0, z5 = {};, z5 = Compositions[r5 - c5, c5][[l5]];]; If[c6 == 0, z6 = {};, z6 = Compositions[r6 - c6, c6][[l6]];]; z = Flatten[{z1, z2, z3, z4, z5, z6}]; Do[m1 = NthSubset[p1, Range[c]]; j1 = Length[m1]; If[j1 == 0, s1 = 0, s1 = j1 + Sum[z[[m1[[i1]]]], {i1, 1, j1}];]; rest2 = Complement[Range[c], m1]; Do[m2 = NthSubset[p2, rest2]; j2 = Length[m2]; If[j2 == 0, s2 = 0, s2 = j2 + Sum[z[[m2[[i2]]]], {i2, 1, j2}];]; rest3 = Complement[rest2, m2]; Do[m3 = NthSubset[p3, rest3]; j3 = Length[m3]; If[j3 == 0, s3 = 0, s3 = j3 + Sum[z[[m3[[i3]]]], {i3, 1, j3}];]; rest4 = Complement[rest3, m3]; Do[m4 = NthSubset[p4, rest4]; j4 = Length[m4]; If[j4 == 0, s4 = 0, s4 = j4 + Sum[z[[m4[[i4]]]], {i4, 1, j4}];]; rest5 = Complement[rest4, m4]; Do[m5 = NthSubset[p5, rest5]; j5 = Length[m5]; If[j5 == 0, s5 = 0, s5 = j5 + Sum[z[[m5[[i5]]]], {i5, 1, j5}];]; s6 = r - s1 - s2 - s3 - s4 - s5; j6 = c - j1 - j2 - j3 - j4 - j5; If[n1 - s1 >= 0 && n2 - s2 >= 0 && n3 - s3 >= 0 && n4 - s4 >= 0 && n5 - s5 >= 0 && n6 - s6 >= 0, suma = suma + part1*Binomial[n1 - s1, j1]*j1!* Binomial[n2 - s2, j2]*j2!*Binomial[n3 - s3, j3]* j3!*Binomial[n4 - s4, j4]*j4!* Binomial[n5 - s5, j5]*j5!*Binomial[n6 - s6, j6]* j6!;]; , {p5, 0, 2^(c - j1 - j2 - j3 - j4) - 1}]; , {p4, 0, 2^(c - j1 - j2 - j3) - 1}]; , {p3, 0, 2^(c - j1 - j2) - 1}]; , {p2, 0, 2^(c - j1) - 1}]; , {p1, 0, 2^c - 1}]; , {l6, 1, nl6}]; , {l5, 1, nl5}]; , {l4, 1, nl4}]; , {l3, 1, nl3}]; , {l2, 1, nl2}]; , {l1, 1, nl1}]; , {c6, 0, Min[r6, n6 - r6]}]; , {c5, 0, Min[r5, n5 - r5]}]; , {c4, 0, Min[r4, n4 - r4]}]; , {c3, 0, Min[r3, n3 - r3]}]; , {c2, 0, Min[r2, n2 - r2]}]; , {c1, 0, Min[r1, n1 - r1]}]; , {r6, 0, n6 - 1}]; , {r5, 0, n5 - 1}]; , {r4, 0, n4 - 1}]; , {r3, 0, n3 - 1}]; , {r2, 0, n2 - 1}]; , {r1, 0, n1 - 1}]; suma, n!] , {n, 1, 15}]