[go: up one dir, main page]

login
A222188
Table read by antidiagonals: number of toroidal m X n binary arrays, allowing rotation and/or reflection of the rows and/or the columns.
12
2, 3, 3, 4, 7, 4, 6, 13, 13, 6, 8, 34, 36, 34, 8, 13, 78, 158, 158, 78, 13, 18, 237, 708, 1459, 708, 237, 18, 30, 687, 4236, 14676, 14676, 4236, 687, 30, 46, 2299, 26412, 184854, 340880, 184854, 26412, 2299, 46
OFFSET
1,1
LINKS
S. N. Ethier, Counting toroidal binary arrays, arXiv:1301.2352 [math.CO], 2013 and J. Int. Seq. 16 (2013) #13.4.7.
S. N. Ethier and Jiyeon Lee, Counting toroidal binary arrays, II, arXiv:1502.03792v1 [math.CO], Feb 12, 2015 and J. Int. Seq. 18 (2015) # 15.8.3.
S. N. Ethier and Jiyeon Lee, Parrondo games with two-dimensional spatial dependence, arXiv:1510.06947 [math.PR], 2015.
Peter Kagey and William Keehn, Counting tilings of the n X m grid, cylinder, and torus, arXiv:2311.13072 [math.CO], 2023. See p. 3.
EXAMPLE
Array begins:
2, 3, 4, 6, 8, 13, 18, 30, ...
3, 7, 13, 34, 78, 237, 687, 2299, ...
4, 13, 36, 158, 708, 4236, 26412, 180070, ...
6, 34, 158, 1459, 14676, 184854, 2445918, 33888844, ...
8, 78, 708, 14676, 340880, 8999762, 245619576, 6873769668, ...
...
MATHEMATICA
b1[m_, n_] := Sum[EulerPhi[c]*EulerPhi[d]*2^(m*n/LCM[c, d]), {c, Divisors[ m]}, {d, Divisors[n]}]/(4*m*n); b2a[m_, n_] := If[OddQ[m], 2^((m+1)*n/2) /(4*n), (2^(m*n/2) + 2^((m+2)*n/2))/(8*n)]; b2b[m_, n_] := DivisorSum[n, If[# >= 2, EulerPhi[#]*2^((m*n)/#), 0]&]/(4*n); b2c[m_, n_] := If[OddQ[ m], Sum[If [OddQ[n/GCD[j, n]], 2^((m+1)*GCD[j, n]/2) - 2^(m*GCD[j, n]), 0], {j, 1, n-1}]/(4*n), Sum[If[OddQ[n/GCD[j, n]], 2^(m*GCD[j, n]/2) + 2^((m+2)*GCD[j, n]/2) - 2^(m*GCD[j, n]+1), 0], {j, 1, n-1}]/(8*n)]; b2[m_, n_] := b2a[m, n] + b2b[m, n] + b2c[m, n]; b3[m_, n_] := b2[n, m]; b4oo[m_, n_] := 2^((m*n-3)/2); b4eo[m_, n_] := 3*2^(m*n/2 - 3); b4ee[m_, n_] := 7*2^(m*n/2-4); a[m_, n_] := Module[{b}, If [OddQ[m], If [OddQ[n], b = b4oo[m, n], b = b4eo[m, n]], If[OddQ[n], b = b4eo[m, n], b = b4ee[m, n]]]; b += b1[m, n] + b2[m, n] + b3[m, n]; Return[b]]; Table[a[m - n+1, n], {m, 1, 10}, {n, 1, m}] // Flatten (* Jean-François Alcover, Dec 05 2015, adapted from Michel Marcus's PARI script *)
PROG
(PARI)
odd(n) = n%2;
b1(m, n) = sumdiv(m, c, sumdiv(n, d, eulerphi(c)*eulerphi(d)*2^(m*n/lcm(c, d))))/(4*m*n);
b2a(m, n) = if (odd(m), 2^((m+1)*n/2)/(4*n), (2^(m*n/2)+2^((m+2)*n/2))/(8*n));
b2b(m, n) = sumdiv(n, d, if (d>=2, eulerphi(d)*2^((m*n)/d), 0))/(4*n);
b2c(m, n) = if (odd(m), sum(j=1, n-1, if (odd(n/gcd(j, n)), 2^((m+1)*gcd(j, n)/2)-2^(m*gcd(j, n))))/(4*n), sum(j=1, n-1, if (odd(n/gcd(j, n)), 2^(m*gcd(j, n)/2)+2^((m+2)*gcd(j, n)/2)-2^(m*gcd(j, n)+1)))/(8*n));
b2(m, n) = b2a(m, n) + b2b(m, n) + b2c(m, n);
b3(m, n) = b2(n, m);
b4oo(m, n) = 2^((m*n - 3)/2);
b4eo(m, n) = 3*2^(m*n/2 - 3);
b4ee(m, n) = 7*2^(m*n/2 - 4);
a(m, n) = {if (odd(m), if (odd(n), b = b4oo(m, n), b = b4eo(m, n)), if (odd(n), b = b4eo(m, n), b = b4ee(m, n))); b += b1(m, n) + b2(m, n) + b3(m, n); return (b); }
\\ Michel Marcus, Feb 13 2013
CROSSREFS
Main diagonal is A209251.
Cf. A184271.
Sequence in context: A180985 A227385 A049790 * A368307 A368305 A184271
KEYWORD
nonn,tabl
AUTHOR
N. J. A. Sloane, Feb 12 2013
STATUS
approved