A384770 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-under-down dealing is used, then the resulting cards will be dealt in increasing order.
1, 2, 1, 1, 3, 2, 2, 4, 3, 1, 5, 4, 2, 1, 3, 3, 2, 4, 1, 6, 5, 2, 7, 6, 1, 4, 3, 5, 5, 4, 6, 1, 3, 8, 7, 2, 9, 8, 3, 1, 6, 5, 7, 2, 4, 8, 3, 5, 1, 10, 9, 4, 2, 7, 6, 3, 8, 7, 1, 9, 4, 6, 2, 11, 10, 5, 12, 11, 6, 1, 4, 9, 8, 2, 10, 5, 7, 3, 6, 8, 4, 1, 13, 12, 7, 2, 5, 10, 9, 3, 11
Offset: 1
Examples
Consider a deck of four cards arranged in the order 2,4,3,1. If we put the top 3 cards under and deal the next card, we will deal card number 1. Now the deck is ordered 2,4,3. If we place 3 cards under and deal the next one, we will deal card number 2, and be left with cards 4,3. Again placing 3 cards under and dealing the next, we will deal card number 3, leaving card number 4 to be dealt last. The dealt cards are in order. Thus, the fourth row of the triangle is 2,4,3,1. The triangle begins as follows: 1 2, 1; 1, 3, 2; 2, 4, 3, 1; 5, 4, 2, 1, 3; 3, 2, 4, 1, 6, 5; 2, 7, 6, 1, 4, 3, 5; 5, 4, 6, 1, 3, 8, 7, 2; 9, 8, 3, 1, 6, 5, 7, 2, 4
Programs
-
Python
def row(n): i, J, out = 0, list(range(1, n+1)), [] while len(J) > 1: i = (i + 3)%len(J) out.append(J.pop(i)) out += [J[0]] 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)])
Formula
T(n, 4) = 1 for n >= 4
T(n, k) = T(n-1, k-4 mod n) + 1 if k !== 4 (mod n).
Comments