斐波那契(黃金分割)查詢

2021-10-04 06:21:11 字數 653 閱讀 2752

斐波那契數列:1,1,2,3,5,8,13…

可以發現相鄰的兩個數無限接近**分割點。

中間值:mid=low+f(k-1)+1

f代表斐波那契數列

理解:

1.斐波那契數列:f(k)=f(k-1)+f(k-2)的性質。可以得到f(k)-1=(f(k-1)-1)+(f(k-2)-1)+1;

所以只要順序表的長度為f(k)-1,就可以分為長度為f(k-1)和f(k-2)兩部分。

從而中間位置為 mid=low+f(k-1)+1;

2.所以k值要使f(k)-1大於等於n,但是 n不一定夠,這時,就需要將n增加,從新增位置到f(k)-1都賦為n的值即可。

public static int maxsize=20;

//後面需要使用到斐波那契數列,所及先建立乙個

public static int fibonacci()

//多了

int temp= arrays.copyof(a,f[k]); //這裡表示不足部分用0填充

//但是實際上需要用a陣列最後的數來填充

for(int i=high+1;itemp[mid])elseelse}}

return -1;

}

斐波那契(黃金分割)查詢

斐波那契數列 1 1 2 3 5 8 13 21 分割點是指把一條線段分割成倆部分,使其中一部分與全長之比等於另一部分與這部分之比。取其前三位數字的近似值是0.618,由於按比例設計地造型十分美麗,因此被叫 分割,也成為中外比 對f k 1 1的理解 1 由斐波那契數列 f k f k 1 f k ...

查詢演算法 斐波那契查詢 黃金分割法

斐波那契搜尋 fibonacci search 又稱斐波那契查詢,是區間中單峰函式的搜尋技術。斐波那契搜尋就是在二分查詢的基礎上根據斐波那契數列進行分割的。在斐波那契數列找乙個等於略大於查詢表中元素個數的數f n 將原查詢表擴充套件為長度為f n 如果要補充元素,則補充重複最後乙個元素,直到滿足f ...

python黃金分割,斐波那契數列

user bin env python coding utf 8 class fuct object 返回乙個 分割數列 def init self self.flist 0,1 self.main def main self listlen raw input 請輸入 分割的數列長度 self.c...