A380195 Triangle T(n,k) read by rows, where row n is a permutation of the numbers 1 through n, such that if a deck of n cards is prepared in this order, and under-under-down dealing is used, then the resulting cards will be dealt in increasing order.
1, 1, 2, 2, 3, 1, 4, 2, 1, 3, 2, 4, 1, 5, 3, 6, 4, 1, 3, 5, 2, 6, 3, 1, 7, 5, 2, 4, 3, 5, 1, 7, 4, 2, 8, 6, 9, 7, 1, 4, 6, 2, 8, 5, 3, 6, 4, 1, 10, 8, 2, 5, 7, 3, 9, 4, 10, 1, 7, 5, 2, 11, 9, 3, 6, 8, 7, 9, 1, 5, 11, 2, 8, 6, 3, 12, 10, 4, 11, 5, 1, 8, 10, 2, 6, 12, 3, 9, 7, 4, 13
Offset: 1
Examples
Consider a deck of four cards arranged in the order 4,2,1,3. Card 4 goes under, card 2 goes under, and card 1 is dealt. Now the deck is ordered 3,4,2. Card 3 goes under, card 4 goes under, and card 2 is dealt. Now the leftover deck is ordered 3,4. Card 3 goes under, card 4 goes under, and card 3 is dealt. Then card 4 is dealt. The dealt cards are in order. Thus, the fourth row of the triangle is 4,2,1,3. Table begins: 1 ; 1, 2; 2, 3, 1; 4, 2, 1, 3; 2, 4, 1, 5, 3; 6, 4, 1, 3, 5, 2; 6, 3, 1, 7, 5, 2, 4; 3, 5, 1, 7, 4, 2, 8, 6; 9, 7, 1, 4, 6, 2, 8, 5, 3;
Programs
-
Python
def UUD(n): return invPerm(UUDES(n)) def UUDES(n): l=[] for i in range(n): l.append(i+1) index = 0 P=[] for i in range(n): index+=2 index=index%len(l) P.append(l[index]) l.pop(index) return P def invPerm(p): inv = [] for i in range(len(p)): inv.append(None) for i in range(len(p)): inv[p[i]-1]=i+1 return inv sequence = [] for i in range(1,20): sequence += [str(v) for v in UUD(i)] print(", ".join(sequence))
-
Python
def row(n): i, J, out = 0, list(range(1, n+1)), [] while len(J) > 0: i = (i + 2)%len(J) out.append(J.pop(i)) return [out.index(j)+1 for j in list(range(1, n+1))] print([e for n in range(1, 14) for e in row(n)]) # Michael S. Branicky, Mar 27 2025
Formula
T(n, 3 mod n) = 1
T(n, k) = T(n-1, k-3 mod n) + 1 if k != 3 mod n, where "a mod b" denotes the representative of the a's modular equivalence class in {0, ..., b-1}.
Comments