九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
斐波那契數(shù)列之美

美妙絕倫的基本算法

Image by Gerd Altmann on Pixabay

在研究和進(jìn)行有關(guān)數(shù)據(jù)處理,計算相關(guān)計算機(jī)或數(shù)學(xué)運(yùn)算的研究時,我們遇到了很多算法。 即使有時候我們不太喜歡數(shù)學(xué),但我們肯定還是被一些自然而然地整理出來的東西所包圍,甚至都不知道。

最有趣的事情之一是弄清楚斐波那契數(shù)列如何工作。 這些序列在日常生活中經(jīng)常出現(xiàn):花朵上的花瓣數(shù),向日葵上的螺旋數(shù)等。

Image by Pxfuel

編碼時,我們將使用許多不同的算法。 盡管有大量的遞歸,分治,隨機(jī)化和暴力算法,但最有用的算法之一就是遞歸算法

那么究竟什么是算法?

首先,算法是解決問題需要遵循的一組任務(wù)。 算法的運(yùn)行時間是完成這些任務(wù)所需的總步數(shù)(或者稱為CS中的BigO表示法,它描述算法的性能)。

那么什么是遞歸,遞歸函數(shù)如何工作?

Image by TORLEY on Flickr

遞歸是指某事在調(diào)用自己本身或?qū)⑵涿枋鰹樽砸米陨?,直到條件為真并停止。

遞歸函數(shù)是在執(zhí)行過程中調(diào)用自身的函數(shù),也稱為直接遞歸。 與此相反的是,當(dāng)兩個函數(shù)相互調(diào)用時-稱為間接遞歸。

我們?nèi)绾斡嬎沆巢瞧鯏?shù)列,為什么知道它很重要?

對于那些不熟悉編程的人來說,它無疑會幫助您了解如何以及何時使用遞歸或迭代函數(shù)。

對于數(shù)學(xué)家來說,該序列可幫助他們從微分方程開始時更批判性地思考并發(fā)展其邏輯。

斐波那契的數(shù)學(xué)公式

斐波那契數(shù)列的工作方式是,序列中的每個數(shù)字都是其前兩個數(shù)字的和。

對于n = 0,我們有F0 = 0,對于n = 1,我們有F1 = 1。 記住,我們總是有序列的前兩個值。 我們的工作是弄清楚序列的其余部分是如何生成的以及我們要檢查的n值的結(jié)果是什么。 所以我們總是從n> 1開始。

斐波那契數(shù)列的計算公式如下:

F0 = 0,F(xiàn)1 = 1Fn = Fn-1 + Fn-2(n> 1時)

計算n = 6的斐波那契的步驟:

n = 0 => F0 = 0n = 1 => F1 = 1n = 2,而n> 1 => F2 = F2-1 + F2-2 = F1 + F0 = 1 + 0 = 1n = 3 => F3 = F3-1 + F3-2 = F2 + F1 = 1 + 1 = 2n = 4 => F4 = F4-1 + F4-2 = F3 + F2 = 2 + 1 = 3n = 5 => F5 = F4 + F3 = 3 + 2 = 5n = 6 => F6 = F5 + F4 = 5 + 3 = 8 依此類推n> 1

那么,如果對斐波那契數(shù)進(jìn)行平方運(yùn)算會發(fā)生什么呢?

1,1,4,9,25,65,169,441,…1 +1 + 4 = 6 = 2 x 31 +1 + 4 + 9 = 15 = 3 x 51 +1 +4 + 9 + 25 = 40 = 5 x 81 +1 +4 + 9 + 25 + 64 = 104 = 8 x 13…

結(jié)果不是斐波那契數(shù),但它們被我們匯總在一起的值所掩蓋。 這讓我們開始思考:實(shí)際上,幾乎每個和都是斐波那契數(shù)列的一部分。

讓我們檢查一下金色矩形,看看斐波那契數(shù)字是如何工作的。

我們都知道 :

矩形的面積= b x h => b底和h高度

那么,如果我們將上述平方數(shù)相加會發(fā)生什么?

矩形的面積=12+12+22+32+52+82+132= 273 = 13x21

再一次,我們有一些斐波那契數(shù)。

如果我們按順序?qū)⑤^大的數(shù)字除以較小的數(shù)字,例如:

13/8 = 1.625,21 / 13 = 1.615,34 / 21 = 1.619,55/34 = 1.6176,89 / 55 = 1.61818…

這也稱為黃金分割率或1.618022。 所劃分的數(shù)字越大,我們越接近黃金分割率的值。

這是一個計算斐波納契數(shù)列的JavaScript代碼。 時間復(fù)雜度是線性的,因?yàn)檠h(huán)從2到n。 它運(yùn)行時間為O(n)。

function fibonacci(n) { var fibonacciNumbers = [], firstNumber = 0, secondNumber = 1; if (n <= 0) { return fibonacciNumbers; } if (n === 1) { return fibonacciNumbers.push(firstNumber); } fibonacciNumbers[0] = firstNumber; fibonacciNumbers[1] = secondNumber; for (var i = 2; i <= n; i++) { fibonacciNumbers[i] = fibonacciNumbers[(i— 1)] + fibonacciNumbers[(i— 2)]; } return fibonacciNumbers;}var result = fibonacci(3);if (result) { for (var i = 0; i < result.length; i++) { console.log(result[i]); }}

(本文翻譯自Amra Sezairi的文章《The Beauty of the Fibonacci Sequence》)

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
斐波那切數(shù)列
BAT開發(fā)工程師經(jīng)典面試題之斐波那契數(shù)列
6-4 計算斐波那契數(shù)列第N項
PHP遞歸與迭代
迭代算法與遞歸算法的概念及區(qū)別(2)
遞歸與迭代的區(qū)別
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服