这是我试图解决的系列,就像想出一个封闭的公式。
它遵循这个程序:
function(n):
if(n<=1):
return 1
else if(n%3==0):
return function(n+1) - 1
else:
return function(n-2) + 1
a0 = 1
a1 = 1
A = A.
我= 2
A4 = 3
兄弟= p
灰= h
a7 = 4 ......依此类推。似乎对于前4个术语它只是1 1,2 2,但随后它在3中重复。所以当它命中n mod 3 = 1时,它会启动一个新数字。
有人能协助我吗?
可能属于数学部分。
你可以把这个系列写成
f(3k) = f(3k+1) - 1 = f(3k-1)
f(3k+1) = f(3k-1) + 1 = f(3k) + 1
f(3k+2) = f(3k) + 1
在这里你可以看到,在3k + 1(4,7,...)的值处,该值增加1并且相同。第一种模式是由于您为<= 1值设置的初始条件。
对于k> 2,您可以用2+int((k-1)/3)
替换该函数。