|
|
A122158
|
|
Smallest positive number of "triangular" shuffles of n(n+1)/2 cards needed to restore them to their original order.
|
|
2
|
|
|
1, 2, 4, 20, 18, 12, 126, 33, 204, 1638, 1968, 2010, 504, 17043, 240, 222870, 4084080, 12462, 81396, 4200, 41790, 24254, 56560, 1377090, 30669496, 57420, 249480, 93840, 696010, 40680, 4627497204, 2122260, 4774320, 347190, 83800, 103458, 5017446420, 1686300
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
Lay out cards in a triangular array from left to right in rows, with 1 card in row 1 (the top row), 2 cards in row 2, etc., then pick up by columns, in order from the bottom of the column to the top, first from column 1, then column 2, etc. See A048782 for analogous results for a different triangular shuffle.
|
|
LINKS
|
|
|
EXAMPLE
|
For n=3, successive shuffles give:
1.......4.......5.......3.......1
2.3.....2.1.....2.4.....2.5.....2.3
4.5.6...5.3.6...3.1.6...1.4.6...4.5.6
returning the deck of 6 cards to its original order in 4 shuffles. Thus a(3)=4.
|
|
PROG
|
(PARI)
Perm(n)={concat(Vecrev(vector(n, i, vector(i, j, n+1-i+(n-j+1)*(n-j)/2))))}
Follow(s, f)={my(t=f(s), k=1); while(t>s, k++; t=f(t)); if(s==t, k, 0)}
CyclePoly(n, x)={my(v=Perm(n), q=0); for(i=1, #v, my(l=Follow(i, j->v[j])); if(l, q+=x^l)); q}
a(n)={my(q=CyclePoly(n, x), m=1); for(i=1, poldegree(q), if(polcoeff(q, i), m=lcm(m, i))); m} \\ Andrew Howroyd, Nov 12 2017
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|