cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A227392 Number of 2-Bottom-Card shuffles required to return a deck of size n to its original order.

This page as a plain text file.
%I A227392 #28 Sep 09 2023 19:38:19
%S A227392 1,2,2,3,5,6,10,6,9,10,24,9,13,14,44,12,17,18,70,15,21,22,102,18,25,
%T A227392 26,140,21,29,30,184,24,33,34,234,27,37,38,290,30,41,42,352,33,45,46,
%U A227392 420,36,49,50
%N A227392 Number of 2-Bottom-Card shuffles required to return a deck of size n to its original order.
%C A227392 Apply the P card and the B card, the two cards on the bottom of the stack, to do shuffling a deck of cards. The T cards are on the top of cards and the M cards are between the T cards and the P card.
%C A227392 The shuffling steps are like this: (T)(M) P B  ->  B (T)(M) P  ->  B (T) P (M).
%C A227392 Let n = T + M +2, (n >= 2). New P = ceiling((n+1)/2).
%C A227392 Count cycles to return original order for the deck of size n.
%C A227392 Order (4k+1)th and (4k+2)th items, k >= 0, can get a Latin square.
%H A227392 Hong-Chang Wang, <a href="/A227392/b227392.txt">Table of n, a(n) for n = 1..100</a>
%F A227392 a(4k+1) = 4k+1, k >= 0;
%F A227392 a(4k+2) = 4k+2, k >= 0;
%F A227392 a(4k+3) = 8k+2, k=0,1;
%F A227392 a(4k+3) = a(4k-1) + 6k + 2, k >= 2;
%F A227392 a(4k+4) = 3*(k+1), k >= 0.
%F A227392 From _Joerg Arndt_, Jul 16 2013: (Start)
%F A227392 G.f.: x*(2*x^9 + 3*x^8 + 3*x^7 - 4*x^6 - 2*x^4 - 3*x^3 - 2*x^2 - 2*x - 1) / ((x-1)*(x+1)*(x^2+1))^3;
%F A227392 a(n) = 3*a(n-4) - 3*a(n-8) + a(n-12). (End)
%e A227392 a(1) = 1
%e A227392   1
%e A227392   1
%e A227392 .
%e A227392 a(2) = 2
%e A227392   1 2
%e A227392   2 1
%e A227392   1 2
%e A227392 .
%e A227392 a(3) = 2
%e A227392   1 2 3
%e A227392   3 2 1
%e A227392   1 2 3
%e A227392 .
%e A227392 a(4) = 3
%e A227392   1 2 3 4
%e A227392   4 1 3 2
%e A227392   2 4 3 1
%e A227392   1 2 3 4
%e A227392 .
%e A227392 a(5) = 5
%e A227392   1 2 3 4 5
%e A227392   5 1 4 2 3
%e A227392   3 5 2 1 4
%e A227392   4 3 1 5 2
%e A227392   2 4 5 3 1
%e A227392   1 2 3 4 5
%e A227392 .
%e A227392 a(6) = 6
%e A227392   1 2 3 4 5 6
%e A227392   6 1 2 5 3 4
%e A227392   4 6 1 3 2 5
%e A227392   5 4 6 2 1 3
%e A227392   3 5 4 1 6 2
%e A227392   2 3 5 6 4 1
%e A227392   1 2 3 4 5 6
%e A227392 .
%e A227392 a(7) = 10
%e A227392   1 2 3 4 5 6 7
%e A227392   7 1 2 6 3 4 5
%e A227392   5 7 1 4 2 6 3
%e A227392   3 5 7 6 1 4 2
%e A227392   2 3 5 4 7 6 1
%e A227392   1 2 3 6 5 4 7
%e A227392   7 1 2 4 3 6 5
%e A227392   5 7 1 6 2 4 3
%e A227392   3 5 7 4 1 6 2
%e A227392   2 3 5 6 7 4 1
%e A227392   1 2 3 4 5 6 7
%e A227392 .
%e A227392 a(8) = 6
%e A227392   1 2 3 4 5 6 7 8
%e A227392   8 1 2 3 7 4 5 6
%e A227392   6 8 1 2 5 3 7 4
%e A227392   4 6 8 1 7 2 5 3
%e A227392   3 4 6 8 5 1 7 2
%e A227392   2 3 4 6 7 8 5 1
%e A227392   1 2 3 4 5 6 7 8
%e A227392 .
%e A227392 a(9) = 9
%e A227392   1 2 3 4 5 6 7 8 9
%e A227392   9 1 2 3 8 4 5 6 7
%e A227392   7 9 1 2 6 3 8 4 5
%e A227392   5 7 9 1 4 2 6 3 8
%e A227392   8 5 7 9 3 1 4 2 6
%e A227392   6 8 5 7 2 9 3 1 4
%e A227392   4 6 8 5 1 7 2 9 3
%e A227392   3 4 6 8 9 5 1 7 2
%e A227392   2 3 4 6 7 8 9 5 1
%e A227392   1 2 3 4 5 6 7 8 9
%o A227392 (C)
%o A227392 int a(int n)
%o A227392 {
%o A227392     int c[101];
%o A227392     int i, step, B, P, m;
%o A227392     for (i=1 ; i<n+1 ; i++)  { c[i] = i; }
%o A227392     step = 0;
%o A227392 next:
%o A227392     B = c[n];
%o A227392     for (i=n-1 ; i>0 ; i--)  { c[i+1] = c[i]; }
%o A227392     c[1] = B;
%o A227392     m = (n+2)/2;
%o A227392     P = c[n];
%o A227392     if ( n>2 )  { for (i=n-1 ; i>=m ; i--)  c[i+1] = c[i]; }
%o A227392     c[m] = P;
%o A227392     step++;
%o A227392     for (i=1 ; i<n ; i++)  { if ( c[i] != i ) goto next; }
%o A227392     return step;
%o A227392 }
%o A227392 #include <stdio.h>
%o A227392 int main()
%o A227392 {
%o A227392     int n;
%o A227392     for (n=1; n<=100; ++n)  printf("%d, ", a(n));
%o A227392     printf("\n");
%o A227392     return 0;
%o A227392 }
%K A227392 nonn
%O A227392 1,2
%A A227392 _Hong-Chang Wang_, Jul 10 2013