php處理斐波那契數(shù)列非遞歸方法
更新時(shí)間:2012年02月04日 15:58:21 作者:
phpchina上有個(gè)名人叫大白菜心,經(jīng)常會(huì)拿這個(gè)事來說事。傳統(tǒng)處理會(huì)把斐波那契數(shù)列用遞歸來處理,效率慢是必然的。不過他說事說吧,居然不拿出答案來,就有點(diǎn)不厚道了
我自己構(gòu)思了下,實(shí)際上程序來解決這個(gè)事情,就是一個(gè)偏移量的問題。首先看數(shù)列::1、1、2、3、5、8、13、21、34數(shù)列的下一個(gè)數(shù)是前2個(gè)數(shù)字之和,以此類推。
程序處理的話,實(shí)際上就是一個(gè)FOR語句,傳統(tǒng)FOR語句是for($i=1;$i;$count,$i++),這里的偏移量是$i=$i+1.如果處理這個(gè)數(shù)列的話,這個(gè)偏移量就不是1了,是前1個(gè)數(shù)字。那么當(dāng)你for的時(shí)候,一個(gè)變量記錄上一個(gè)數(shù)字,另外一個(gè)記錄當(dāng)前數(shù)字,偏移量為這上一個(gè)數(shù)字,然后在循環(huán)中重新賦值,將上一個(gè)數(shù)字記錄成當(dāng)然循環(huán)值,以此做下個(gè)循環(huán)的偏移量。代碼其實(shí)很簡單:
$count = 9999999999967543;
$array = array('0′=>1);
for($a=1,$i=2;$i<$count;$i=$i+$a){
$array[] = $a;
$array[] = $i;
$a = $a +$i;
}
print_r($array);
echo $count.'里有'.count($array).'個(gè)斐波那契數(shù)列數(shù)';
建議哪個(gè)無聊人拿這個(gè)去phpchina給大白菜職業(yè)頂貼去
程序處理的話,實(shí)際上就是一個(gè)FOR語句,傳統(tǒng)FOR語句是for($i=1;$i;$count,$i++),這里的偏移量是$i=$i+1.如果處理這個(gè)數(shù)列的話,這個(gè)偏移量就不是1了,是前1個(gè)數(shù)字。那么當(dāng)你for的時(shí)候,一個(gè)變量記錄上一個(gè)數(shù)字,另外一個(gè)記錄當(dāng)前數(shù)字,偏移量為這上一個(gè)數(shù)字,然后在循環(huán)中重新賦值,將上一個(gè)數(shù)字記錄成當(dāng)然循環(huán)值,以此做下個(gè)循環(huán)的偏移量。代碼其實(shí)很簡單:
復(fù)制代碼 代碼如下:
$count = 9999999999967543;
$array = array('0′=>1);
for($a=1,$i=2;$i<$count;$i=$i+$a){
$array[] = $a;
$array[] = $i;
$a = $a +$i;
}
print_r($array);
echo $count.'里有'.count($array).'個(gè)斐波那契數(shù)列數(shù)';
建議哪個(gè)無聊人拿這個(gè)去phpchina給大白菜職業(yè)頂貼去
您可能感興趣的文章:
相關(guān)文章
編寫Smarty插件在模板中直接加載數(shù)據(jù)的詳細(xì)介紹
本篇文章是對(duì)編寫Smarty插件在模板中直接加載數(shù)據(jù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php 函數(shù)使用可變數(shù)量的參數(shù)方法
下面小編就為大家?guī)硪黄猵hp 函數(shù)使用可變數(shù)量的參數(shù)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
php 實(shí)現(xiàn)svg轉(zhuǎn)化png格式的方法分析
這篇文章主要介紹了php 實(shí)現(xiàn)svg轉(zhuǎn)化png格式的方法,結(jié)合實(shí)例形式分析了php svg轉(zhuǎn)化png格式相關(guān)實(shí)現(xiàn)技巧、遇到的問題與操作注意事項(xiàng),需要的朋友可以參考下2020-01-01
php定義一個(gè)參數(shù)帶有默認(rèn)值的函數(shù)實(shí)例分析
這篇文章主要介紹了php定義一個(gè)參數(shù)帶有默認(rèn)值的函數(shù),實(shí)例分析了php參數(shù)帶有默認(rèn)值的函數(shù)使用技巧,需要的朋友可以參考下2015-03-03

