A381050 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 down-under-down dealing is used, then the resulting cards will be dealt in increasing order.
1, 1, 2, 1, 3, 2, 1, 4, 2, 3, 1, 4, 2, 3, 5, 1, 5, 2, 3, 6, 4, 1, 7, 2, 3, 6, 4, 5, 1, 6, 2, 3, 7, 4, 5, 8, 1, 7, 2, 3, 9, 4, 5, 8, 6, 1, 10, 2, 3, 8, 4, 5, 9, 6, 7, 1, 8, 2, 3, 9, 4, 5, 11, 6, 7, 10, 1, 9, 2, 3, 12, 4, 5, 10, 6, 7, 11, 8, 1, 12, 2, 3, 10, 4, 5, 11, 6, 7, 13, 8, 9
Offset: 1
Examples
Consider a deck of four cards arranged in the order 1,4,2,3. In round 1, card 1 is dealt, card 4 goes under, card 2 is dealt. Now the deck is ordered 3,4. In round 2, card 3 is dealt, card 4 goes under, then card 4 is dealt. The dealt cards are in order. Thus, the fourth row of the triangle is 1,4,2,3. Table begins: 1; 1, 2; 1, 3, 2; 1, 4, 2, 3; 1, 4, 2, 3, 5; 1, 5, 2, 3, 6, 4; 1, 7, 2, 3, 6, 4, 5; 1, 6, 2, 3, 7, 4, 5, 8;
Programs
-
Mathematica
row[n_]:=Module[{ds,res,k,i=1,len},ds=CreateDataStructure["Queue",Range[n]];res=CreateDataStructure["FixedArray",n];While[(ds["Length"]>=2),res["SetPart",i++,ds["Pop"]];ds["Push",ds["Pop"]];If[ds["Length"]>1,res["SetPart",i++,ds["Pop"]];]];res["SetPart",n,ds["Pop"]];Flatten[PositionIndex[res["Elements"]]/@Range[n]]]; Array[row, 13, 1] // Flatten (* Shenghui Yang, May 11 2025 *)
-
Python
def row(n): i, J, out = 0, list(range(1, n+1)), [] while len(J) > 1: i = i%len(J) out.append(J.pop(i)) i = (i + 1)%len(J) #i = i%len(J) if len(J) > 1: 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)]) # Michael S. Branicky, Apr 28 2025
Formula
T(n,3j) = 2j, for 3j <= n. T(n,3j+1) = 2j+1, for 3j+1 <= n.
Comments