A381667 Triangle read by row: T(n,k) is the number of the k-th eliminated person in the variation of the Josephus elimination process for n people where two people are skipped each step.
1, 1, 2, 3, 1, 2, 3, 2, 4, 1, 3, 1, 5, 2, 4, 3, 6, 4, 2, 5, 1, 3, 6, 2, 7, 5, 1, 4, 3, 6, 1, 5, 2, 8, 4, 7, 3, 6, 9, 4, 8, 5, 2, 7, 1, 3, 6, 9, 2, 7, 1, 8, 5, 10, 4, 3, 6, 9, 1, 5, 10, 4, 11, 8, 2, 7, 3, 6, 9, 12, 4, 8, 1, 7, 2, 11, 5, 10, 3, 6, 9, 12, 2, 7, 11, 4, 10, 5, 1, 8, 13
Offset: 1
Examples
Consider 4 people in a circle. Initially, people numbered 1 and 2 are skipped, and person 3 is eliminated. The remaining people are now in order 4, 1, 2. Then 4 and 1 are skipped, and person 2 is eliminated. The remaining people are in order 4, 1. Now, 4 and 1 are skipped, and 4 is eliminated. Person 1 is eliminated last. Thus, the fourth row of the triangle is 3, 2, 4, 1. Triangle begins; 1; 1, 2; 3, 1, 2; 3, 2, 4, 1; 3, 1, 5, 2, 4; 3, 6, 4, 2, 5, 1; 3, 6, 2, 7, 5, 1, 4; 3, 6, 1, 5, 2, 8, 4, 7;
Programs
-
Python
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 UUDES(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 print([e for n in range(1, 14) for e in row(n)]) # Michael S. Branicky, Mar 24 2025
Comments