|
|
A048782
|
|
Smallest positive number of "triangular" shuffles of n(n+1)/2 cards needed to restore them to their original order.
|
|
2
|
|
|
1, 1, 2, 6, 10, 84, 70, 24, 36, 330, 210, 288, 1428, 252, 10080, 13680, 1260, 19320, 2160, 22440, 1692152, 50400, 140760, 3071880, 284088, 608753236, 617760, 15600, 35287560, 214138080, 30240, 1866600, 58333800, 8637552, 4034916600
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
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 top of the column to the bottom, first from column 1, then column 2, etc. See A122158 for analogous results for a different triangular shuffle.
|
|
LINKS
|
|
|
EXAMPLE
|
For n=3, successive shuffles give:
1.......1.......1
2.3.....2.4.....2.3
4.5.6...3.5.6...4.5.6,
returning the deck of 6 cards to its original order in 2 shuffles. Thus a(3)=2.
|
|
PROG
|
(PARI)
Perm(n)={concat(vector(n, i, vectorsmall(i, j, i+n*(j-1)-j*(j-1)/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
|
|
|
|