login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

Given n balls, all of which are initially in the first of n numbered boxes, a(n) is the number of steps required to get one ball in each box when a step consists of moving to the next box every second ball from the highest-numbered box that has more than one ball.
1

%I #40 Oct 20 2024 21:13:24

%S 0,1,3,5,9,13,18,23,31,39,47,56,67,78,91,103,119,135,150,167,185,203,

%T 223,243,266,289,313,337,364,391,420,447,479,511,541,574,607,640,675,

%U 711,749,787,826,865,907,949,993,1036,1083,1130,1177,1225,1275,1325,1377

%N Given n balls, all of which are initially in the first of n numbered boxes, a(n) is the number of steps required to get one ball in each box when a step consists of moving to the next box every second ball from the highest-numbered box that has more than one ball.

%C The sum of the number of balls being shifted at each step is A000217(n-1).

%C If the definition were changed to use "lowest-numbered box" instead of "highest-numbered box", then the number of steps would be A001855.

%H Peter J. Taylor, <a href="https://mathoverflow.net/a/433195/231922">Recurrence for the number of steps required to get one ball in each box</a>, answer to question on Mathoverflow.

%F If n = 2^k, then a(n) = (n/2)*(n + 1 - k) - 1. - _Jon E. Schoenfield_, Oct 17 2022

%F Define s(n) = floor(n/2) - 1 + s(floor(n/2)) + A181132(ceiling(n/2) - 2) for n > 3, 0 otherwise. Then a(n) = n*(n-1)/2 - s(n). - _Jon E. Schoenfield_, Oct 18 2022

%e For n = 5, the number of balls in each box at each step is as follows:

%e .

%e | Boxes

%e Step | #1 #2 #3 #4 #5

%e -----+-------------------

%e 0 | 5

%e 1 | 3 2

%e 2 | 3 1 1

%e 3 | 2 2 1

%e 4 | 2 1 2

%e 5 | 2 1 1 1

%e 6 | 1 2 1 1

%e 7 | 1 1 2 1

%e 8 | 1 1 1 2

%e 9 | 1 1 1 1 1

%e .

%e Thus, a(5) = 9.

%o (PARI) a(n)=my(A, B, v); v=vector(n, i, 0); v[1]=n; A=0; while(v[n]==0, B=n; while(v[B]<2, B--); v[B+1]+=v[B]\2; v[B]-=v[B]\2; A++); A

%Y Cf. A000217, A001855, A181132.

%K nonn

%O 1,3

%A _Mikhail Kurkov_, Oct 15 2022