login
A343369
Triangle read by rows: T(n,k) is the number of polygons formed by connecting the vertices of a regular 2n-gon such that the winding number around the center is k and with no side passing through the center.
2
0, 0, 1, 6, 10, 0, 296, 391, 56, 1, 21580, 28298, 6132, 246, 0, 2317884, 3137098, 859536, 70389, 1012, 1, 349281380, 490054052, 158307216, 19756138, 711692, 4082, 0, 70651004192, 102443715659, 37521267472, 6221752657, 390266848, 6782563, 16368, 1
OFFSET
1,4
COMMENTS
Polygons that differ by rotation or reflection are counted separately.
T(1,0)=0 by convention.
LINKS
Andrew Howroyd, Table of n, a(n) for n = 1..55 (rows 1..10)
Wikipedia, Winding number
FORMULA
T(2*n,2*n-1) = 1 and T(2*n+1,2*n) = 0 for all n>=1.
T(n,n-2) = 4^(n-1)-2*n for all n>=2.
EXAMPLE
Triangle begins:
0;
0, 1;
6, 10, 0;
296, 391, 56, 1;
21580, 28298, 6132, 246, 0;
PROG
(PARI)
T(n)={
local(Cache=Map());
my(dir(p, q)=if(p<n, if(q>=n&&q<p+n, 'x, 1), if(q<n&&q>p-n, 1/'x, 1)));
my(recurse(k, p, b) = my(hk=[k, p, b], z); if(!mapisdefined(Cache, hk, &z),
z = if(k==0, p<>n, sum(q=1, 2*n-1, if(!bittest(b, q) && (q-p)%n, dir(p, q)*self()(k-1, q, b+(1<<q)) )));
mapput(Cache, hk, z)); z);
my(p=recurse(2*n-1, 0, 0));
vector(n, i, polcoef(p, i-1)/if(i==1, 2, 1))
}
{ for(n=1, 6, print(T(n))) } \\ Andrew Howroyd, May 14 2021
CROSSREFS
Row sums are A307923.
Cf. A330660.
Sequence in context: A202951 A316633 A295052 * A052193 A347632 A144763
KEYWORD
nonn,tabl
AUTHOR
Ludovic Schwob, Apr 12 2021
EXTENSIONS
a(22)-a(36) from Andrew Howroyd, May 14 2021
STATUS
approved