去掉首位還是斐波那契數的最大斐波那契數是多少?
首先對於前25個斐波那契數分別討論. 這個各位答主已經編程驗證了, 在此直接給出結果(5,55)是一組可行解. 為了完整性考慮, 在此也給出肉眼觀察法:
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,37711,75025.
接下來我們考慮較大數為第26個或以後的數, 也就是大於121393的數. 那麼這樣的數對有這種特性:
- 這樣的兩個數對大小差不超過100倍.
- 這樣的兩個數末t位數字相同.
由於 , 故這兩個數在數列中相隔不超過10個數.
我們來運行一個程序: (n=10^t.)
#include &
using namespace std;const int N=10000000;
int a[N]={0,1},b[N+5],n=N;int main()
{
memset(b,-2,sizeof(b)); b[0]=0;b[1]=1;
for (int i=2;i&可以看出末兩位呈現如下的周期 (注: 後面為倍數關係, 故不再列出)
0,1,1,2,3,5,8,13,21,34,55,89,44,33,77,10,87,97,84,81,65,46,11,57,68,25,93,18,11,29,40,69,9,78,87,65,52,17,69,86,55,41,96,37,33,70,3,73,76,49,25,74,99,73,72,45,17,62,79,41,20,61,81,42,23,65,88,53,41,94,35,29,64,93,57,50,7,57,64,21,85,6,91,97,88,85,73,58,31,89,20,9,29,38,67,5,72,77,49,26,75,1,76,77,53,30,83,13,96,9,5,14,19,33,52,85,37,22,59,81,40,21,61,82,43,25,68,93,61,54,15,69,84,53,37,90,27,17,44,61,5,66,71,37,8,45,53,98,51,49,0,...
而後t位表現出相同的周期性. 繼續運行上述程序, 若相鄰10個數內有相同數字則輸出, 發現t&>=5的時候輸出為(記n=10^t.)
0.1875n-3 0.1875n+3 0.50n+2
0.3750n-1 0.3750n+2 0.75n+10.3750n-3 0.3750n+3 20.5625n-3 0.5625n+3 0.50n+20.7500n0.7500n-1 0.7500n+1 0.5n+1
0.7500n+1 0.7500n+2 0.5n+10.7500n-3 0.7500n+3 20.7500n-5 0.7500n+5 0.5n+5所以為了後t位相同, 其項數至少大於 . 亦即其位數至少大於 . 對任意大於5的t, 均成立 . 證明從121393開始不存在可行解.
綜上知最大的可行解為55, 證畢.
沒有想到數學證明,但是在 以下的數中,最大的斐波那契數是55。
mathematica代碼如下,其中1,3,5分別對應的斐波那契數為(1,21),(3,13),(5,55)。
遍歷前10000個斐波那契數,只找到13,21,55。
list1=[1,1]
for i in range(1,10000):
num1=list1[-1]+list1[-2]
num2=0
if num1&>10:
num2=int(str(num1)[1:])
if num2 in list1:
print(num1)
list1.append(num1)
推薦閱讀:
※「1 堆麥子 + 1 堆麥子 = 1 堆麥子」這樣的例子是否可以用數學語言解釋?
※n*m的點陣中有多少個正方形?
TAG:數學 |