2016-08-10 34 views
0

這是我想解決的系列,就像拿出一個封閉的從公式。這是什麼系列:1,1,2,3,3,3,4,4,5,5,5,

它遵循本程序:

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

A2 = 2

A3 = 2

A4 = 3

A5 = 3

A6 = 3

A7 = 4 ...等等。對於前4項來說,它只是1 1 2 2,但它在3中重複,所以當它達到n mod 3 = 1時,它開始一個新的數字。

有人可以幫助我嗎?

回答

0

可能屬於數學部分。

您可以編寫系列作爲

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設置的初始條件。

對於k> 2,您可以用2+int((k-1)/3)替換該函數。

+0

好的,謝謝! –