hdu 3936 斐波那契數列 規律

2021-06-18 00:45:58 字數 3227 閱讀 9734

fibonacci數列通項公式∴f(n)=(1/√5)*

性質:[plain]view plain

copy

print?

1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1。   

2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)。   

3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1。   

4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)。   

5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1。   

6.f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)。   

利用這一點,可以用程式編出時間複雜度僅為o(log n)的程式。   

7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)。   

8.f(2n-1)=[f(n)]^2-[f(n-2)]^2。   

9.3f(n)=f(n+2)+f(n-2)。   

10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]   

11.f(2n+1)=[f(n)]^2+[f(n+1)]^2.  

1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1。 

2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)。

3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1。

4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)。

5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1。

6.f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)。

利用這一點,可以用程式編出時間複雜度僅為o(log n)的程式。

7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)。

8.f(2n-1)=[f(n)]^2-[f(n-2)]^2。

9.3f(n)=f(n+2)+f(n-2)。

10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]

11.f(2n+1)=[f(n)]^2+[f(n+1)]^2.

[plain]view plain

copy

print?

每3個數有且只有乙個被2整除, 

每4個數有且只有乙個被3整除, 

每5個數有且只有乙個被5整除, 

每6個數有且只有乙個被8整除, 

每7個數有且只有乙個被13整除, 

每8個數有且只有乙個被21整除, 

每9個數有且只有乙個被34整除, 

....... 

我們看到第5、7、11、13、17、23位分別是素數:5,13,89,233,1597,28657(第19位不是)   

每3個數有且只有乙個被2整除, 

每4個數有且只有乙個被3整除,

每5個數有且只有乙個被5整除,

每6個數有且只有乙個被8整除,

每7個數有且只有乙個被13整除,

每8個數有且只有乙個被21整除,

每9個數有且只有乙個被34整除,

.......

我們看到第5、7、11、13、17、23位分別是素數:5,13,89,233,1597,28657(第19位不是)

[plain]view plain

copy

print?

11235,83145,94370,77415,61785.38190, 

99875,27965,16730,33695,49325,72910…  

11235,83145,94370,77415,61785.38190, 

99875,27965,16730,33695,49325,72910…

本題題意:

本題可以利用性質4 和 6

定義sum[i]=sigma(p[j]) 1<=j<=i .

有p[i]=f[2*i-1]^2+f[2*i]^2.

則由公式4可知sum[i]=f[2*i]*f[2*i+1].

之後直接求得sum[r]-sum[l-1]即可。

這是我第一次矩陣連乘 用的是預處理f[2^n].

hdu 跑了78ms 第11 估計前10個跑62的 都是貼的同乙個模板吧  

[cpp]view plain

copy

print?

#include 

#include 

typedef

long

long ll;  

const ll mod=1000000007;  

ll mtrx[60][2][2];  

void debug (ll a[2])  

void pre_pro()  

}  ll fib (ll a)  

;  ll tmp[2][2];  

for (int p=0 ; a ; a>>=1 , ++p)  

}  //debug (mat);

return mat[0][0];  

}  ll sum(ll a)  

int main ()  

return 0;  

}  

#include #include typedef long long ll;

const ll mod=1000000007;

ll mtrx[60][2][2];

void debug (ll a[2])

void pre_pro()

}ll fib (ll a)

; ll tmp[2][2];

for (int p=0 ; a ; a>>=1 , ++p)

}//debug (mat);

return mat[0][0];

}ll sum(ll a)

int main ()

return 0;

}

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契數列

1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...