%I #59 Nov 24 2014 14:35:30
%S 1,1,2,3,5,9,14,24,39,64,106,175,288,475,783,1291,2129,3510,5787,9541,
%T 15730,25935,42759,70498,116232,191634,315951,520915,858844,1415994,
%U 2334579,3849070,6346044,10462858,17250336,28440996,46891275,77310643,127463701,210152115,346482262
%N a(n) is the least number k such that Sum_{j=S(n)+1..S(n)+k} 1/j >= 1/2, where S(n) = Sum_{i=1..n-1} a(i) and S(1) = 0.
%C The limiting ratio of consecutive terms is sqrt(e) ~ 1.648721270700128.
%C Conjecture 1: If the summation threshold (which, for this sequence, is defined as 1/2) is set to any positive number R, then the limiting ratio of consecutive terms in the resulting sequence is e^R.
%C Conjecture 2: If the summation threshold is set to log(phi) = 0.4812118250..., then the Fibonacci sequence is generated.
%C Partition the harmonic series into the smallest-sized groups that sum to 1/2 or greater. You get 1, 1/2, 1/3 + 1/4, 1/5 + 1/6 + 1/7, 1/8 + 1/9 + 1/10 + 1/11 + 1/12, 1/13 + 1/14 + ... + 1/21, 1/22 + ... ; a(n) gives the number of terms in the n-th group. - _Derek Orr_, Nov 08 2014
%C A partition sums to exactly 1/2 for only n=2. - _Jon Perry_, Nov 09 2014
%e Start with 1/1; 1/1 >= 1/2, so a(1) = 1.
%e 1/1 has been used, so start a new sum with 1/2; 1/2 >= 1/2, so a(2) = 1.
%e 1/1 and 1/2 have been used, so start a new sum with 1/3; 1/3 + 1/4 >= 1/2, so a(3) = 2.
%e 1/1 through 1/4 have been used, so start a new sum with 1/5; 1/5 + 1/6 + 1/7 >= 1/2, so a(4) = 3, etc.
%o (Python)
%o import math
%o total = 0
%o prev = 1
%o count = 0
%o for n in range(1, 10**7):
%o ....total = total + 1/n
%o ....count = count + 1
%o ....if (total >= 0.5):
%o ........print(count,end=', ')
%o ........prev = count
%o ........total = 0
%o ........count = 0
%o .
%o print("\ndone")
%o print(math.sqrt(math.e))
%o # _Rob van den Tillaart_, Aug 22 2014 [Corrected by _Derek Orr_, Oct 16 2014]
%o (Python)
%o def a(n):
%o ..if n == 1:
%o ....return 1
%o ..tot,c,k = 0,0,0
%o ..for x in range(1,10**7):
%o ....tot += 1/x
%o ....if tot >= 0.5:
%o ......k += 1
%o ......tot = 0
%o ....if k == n-1:
%o ......c += 1
%o ....if k == n:
%o ......return c
%o n = 1
%o while n < 100:
%o ..print(a(n),end=', ')
%o ..n += 1
%o # _Derek Orr_, Oct 16 2014
%o (PARI) lista(nn) = {n = 1; while (n < nn, k = 1; while (sum(x=n, n+k-1, 1/x) < 1/2, k++); print1(k, ", "); n = n+k;);} \\ _Michel Marcus_, Sep 14 2014
%o (PARI) a(n)=if(n==1,return(1));p=sum(i=1,n-1,a(i));k=1;while(sum(x=p+1,p+k,1/x)<1/2,k++);k
%o n=1;while(n<100,print1(a(n),", ");n++) \\ _Derek Orr_, Oct 16 2014
%Y Cf. A226161.
%Y Cf. A019774, A002390.
%K nonn
%O 1,3
%A _Rob van den Tillaart_, Aug 22 2014
%E Edited by _Derek Orr_, Nov 08 2014
|