login
Survivor of the Josephus problem, counting direction reversed after each step.
0

%I #10 Jun 23 2020 19:12:05

%S 1,1,1,1,3,4,1,3,5,1,9,8,3,3,11,1,15,7,7,18,19,16,3,7,15,24,25,18,9,

%T 28,19,24,7,13,21,5,31,20,11,15,21,32,3,11,31,7,39,23,25,15,35,1,47,

%U 32,15,54,55,48,9,19,39,60,59,58,63,7,49,50,11,40,27,70,63,48,23,27,47,74,67

%N Survivor of the Josephus problem, counting direction reversed after each step.

%C As in A007495, counting for elimination starts clockwise for the first elimination, then continues counterclockwise from the eliminated place for the second, then toggles again to clockwise for the third elimination and changes direction in that manner after each elimination. Sequence shows original place of the survivor.

%H <a href="/index/J#Josephus">Index entries for sequences related to the Josephus Problem</a>

%e n=5 start with 1,2,3,4,5, count upwards to eliminate 5: 1,2,3,4. Count backwards from 4 over 3 over 2 over 1 to eliminate 4: 1,2,3. Then count forwards from 1 (wrapping around and upwards of 4) over 2 etc. to eliminate 2: 1,3. Count backwards starting at 1 (left of eliminated 2) to eliminate 1 and to leave a(5)=3.

%p a := proc(n) local l,dir,pos,i,c ; dir := 1 ; pos := 0 ; l := [seq(i,i=1..n)] ; for i from 1 to n-1 do pos := pos+n*dir ; pos := 1+((pos-1) mod nops(l)) ; l := subsop(pos=NULL,l) ; dir := -dir ; if dir > 0 then pos := pos-1 ; fi ; od ; RETURN(op(1,l)) ; end: for n from 1 to 85 do printf("%d, ",a(n)) ; od;

%Y Cf. A007495, A128982.

%K nonn

%O 1,5

%A _R. J. Mathar_, May 07 2007