国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

斐波那契算法的理解

這篇具有很好參考價值的文章主要介紹了斐波那契算法的理解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.斐波那契數列?:

數組:int[] F={1, 1, 2, 3, 5, 8, 13, 21, 34, 55 };

特點:

從第三個數開始,后邊每一個數都是前兩個數的和 。F[k]=F[k-1]+F[k-2];

斐波那契算法的理解

如圖所示:

????????①low、mid、high都是F數組的索引,F[k]-1表示長度。

????????②為了方便計算出mid,變形:F[k]-1 = (F[k-1]-1) + (F[k-2]-1) + 1;(多出來的1,可以當作mid)

????????③high=(F[k]-1)-1;

????????mid=low+F[k-1]-1;

2.需求:

????????現在有一個數組int[] arr={1,8,10,89,1000,1234},長度n=6;

????????需要定義一個方法,從arr數組中找到數值為80(key=80),

????????若有,則返回索引,若沒有,就返回-1。

分析:

①黃金分割點: 

????????黃金比例又稱黃金分割,是指事物各部分間一定的數學比例關系,即將整體一分為二,較大部分與較小部分之比等于整體與較大部分之比,其比值約為1:0.618或1.618:1。

結論:

????????只要順序表的長度是F[k]-1,就可以分成兩段:較大部分F[k-1]-1,和較小部分F[k-2]-1。

③黃金分割點,是按照長度來劃分,與索引有密切關系。

????????一旦確定了數組arr的黃金分割點mid,之后就可以拿著我們要找的80與黃金分割點mid索引的元素值比較。再之后與二分查找類似。

④arr數組的長度n,是固定的值6,由于(F[k]-1)是不定的,最大值可以非常大,可看成無限大。

????????所以總是會存在:(F[k]-1)的值剛好大于或等于長度6。

????????arr數組的長度n確定了,那么(F[k]-1)的值也就確定了。

因此只要arr數組中元素個數n能達到此時的(F[k]-1),就可以把arr數組分成兩段,從而確定黃金分割點。

⑤新建一個數組brr,長度為(F[k]-1)。然后把arr這個數組中的數據全都拷貝到brr數組中,不足的部分先用0補充,最后把0換成arr的最后一個元素來補充(即arr[high])。

拿著key=80,與brr[mid]比較,

若key大,就把黃金分割點及右側的部分都刪除。

若key小,就把黃金分割點及左側的部分都刪除。

然后產生新的黃金分割點,再比較,直至兩者相等,

若最終一直沒找到,low>high就停止尋找。文章來源地址http://www.zghlxwxcb.cn/news/detail-475443.html

到了這里,關于斐波那契算法的理解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【算法優(yōu)選】 動態(tài)規(guī)劃之斐波那契數列模型

    動態(tài)規(guī)劃相關題目都可以參考以下五個步驟進行解答: 狀態(tài)表? 狀態(tài)轉移?程 初始化 填表順序 返回值 后面題的解答思路也將按照這五個步驟進行講解。 泰波那契序列 Tn 定義如下: T0 = 0, T1 = 1, T2 = 1, 且在 n = 0 的條件下 Tn+3 = Tn + Tn+1 + Tn+2 給你整數 n,請返回第 n 個泰波那契

    2024年02月05日
    瀏覽(25)
  • C語言經典算法實例6:斐波那契數列

    C語言經典算法實例6:斐波那契數列

    斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21,34,55,89… 這個數列從第3項開始,每一項都等于前兩項之和。 斐波那契數列的定義者,是意大利數學家萊昂納多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍貫是比薩。 他被人稱作“比薩的萊昂

    2024年02月02日
    瀏覽(16)
  • 一分鐘學算法-遞歸-斐波那契數列遞歸解法及優(yōu)化

    一分鐘學算法-遞歸-斐波那契數列遞歸解法及優(yōu)化

    一分鐘學一個算法題目。 今天我們要學習的是用遞歸算法求解斐波那契數列。 視頻教程鏈接:https://www.bilibili.com/video/BV1Wu4y1i7JJ/ 首先我們要知道什么是斐波那契數列。 斐波那契數列,又稱黃金分割數列,是一個經典的數學數列,其特點是第一項,第二項為1,后面每個數字都

    2024年02月11日
    瀏覽(26)
  • 遞歸以及斐波那契數列遞歸算法和迭代算法的實現與分析

    遞歸以及斐波那契數列遞歸算法和迭代算法的實現與分析

    程序調用自身的編程技巧稱為遞歸( recursion) 遞歸有兩個過程,簡單地說一個是 遞的過程 ,一個是 歸的過程 。 遞歸的兩個必要條件 1. 存在限制條件 ,當滿足這個限制條件的時候,遞歸便不再繼續(xù)。 2.每次遞歸調用之后越來越 接近這個限制條件 . 遞歸本質就是函數調用

    2024年02月12日
    瀏覽(17)
  • Java數據結構與算法:動態(tài)規(guī)劃之斐波那契數列

    大家好,我是免費搭建查券返利機器人賺傭金就用微賺淘客系統(tǒng)3.0的小編。在這寒冷的季節(jié)里,讓我們一同探討Java中的動態(tài)規(guī)劃,重點關注解決問題的經典代表之一——斐波那契數列。 動態(tài)規(guī)劃簡介 動態(tài)規(guī)劃是一種解決問題的數學方法,通常用于優(yōu)化遞歸算法。它通過將問

    2024年01月22日
    瀏覽(21)
  • 斐波那契算法的理解

    斐波那契算法的理解

    1.斐波那契數列 ?: 數組:int[] F= {1, 1, 2, 3, 5, 8, 13, 21, 34, 55 }; 特點: 從第三個數開始,后邊每一個數都是前兩個數的和 。 F[k]=F[k-1]+F[k-2]; 如圖所示: ????????①low、mid、high都是F數組的索引,F[k]-1表示長度。 ????????②為了方便計算出mid,變形:F[k]-1 = (F[k-1]-1) + (F

    2024年02月08日
    瀏覽(20)
  • 線性代數 --- 計算斐波那契數列第n項的快速算法(矩陣的n次冪)

    線性代數 --- 計算斐波那契數列第n項的快速算法(矩陣的n次冪)

    The n-th term of Fibonacci Numbers: ????????斐波那契數列的是一個古老而又經典的數學數列,距今已經有800多年了。關于斐波那契數列的計算方法不難,只是當我們希望快速求出其數列中的第100,乃至第1000項時,有沒有又準又快的方法,一直是一個值得探討和研究的問題。筆者

    2024年04月27日
    瀏覽(16)
  • JAVA-斐波那契數列

    輸入一個整數 n ,求斐波那契數列的第 n 項。 假定從 0 開始,第 0 項為 0 。 數據范圍 0≤n≤39 樣例

    2024年02月10日
    瀏覽(23)
  • 斐波那契數列應用2

    目錄 斐波那契數列應用2 程序設計 程序分析? 系列文章 【問題描述】定義如下序列:f(1)=1,f(2)=1;f(n)=(A*f(n-1)+B*f(n-2))mod7? ? ?給定A和B,請你計算f(n)的值。 【輸

    2023年04月10日
    瀏覽(23)
  • Python斐波那契數列

    斐波那契數列是一個經典的數學問題,在 Python 中可以使用多種方法來實現,下面是幾個常見的實現方式: 1. 使用遞歸 ```python def fibonacci_recursive(n): ? ? if n = 1: ? ? ? ? return n ? ? else: ? ? ? ? return fibonacci_recursive(n-1) + fibonacci_recursive(n-2) ``` 2. 使用循環(huán) ```python def fibonacci_i

    2024年02月02日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包