以下方法用于查找斐波那契數列中的第 n 個數字:
def fibonacci(number)
if number < 2
number
else
fibonacci(number - 1) fibonacci(number - 2)
end
end
puts fibonacci(6)
答案是8(如果您從 1 而非 0 開始計數,則為序列中的第六個數字(0、1、1、2、3、5、8...)
上面的代碼只是處理數字在序列中的位置,對吧?那么 Ruby 是如何知道某個數字在給定位置的值的呢?換句話說,Ruby 是如何知道fibonacci(4)具有值的3?斐波那契數列是否已經內置于 Ruby 中?
uj5u.com熱心網友回復:
那么 Ruby 是如何知道某個數字在給定位置的值的呢?
它還不知道。它發現,作為此方法的一部分。要找出該位置的值,它首先計算所有先前位置的所有數字的所有值。
Ruby 如何知道 fibonacci(4) 的值為 3
因為它為了計算所做的第一件事fibonacci(4)是呼叫fibonacci(3). 該演算法是遞回的。
uj5u.com熱心網友回復:
不,序列不是內置的。
fibonacci是一個遞回函式。它將被呼叫九次 (!) 來計算fibonacci(4)get 3。(順便說一句,這是計算斐波那契數的一種糟糕的方法。需要 25 次fibonacci(6)!它至少應該記住以前的計算。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335034.html
下一篇:帶條件的串列總和
