最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 用記憶函數(shù)快速計算遞歸函數(shù)

 更新時間:2010年03月15日 20:01:36   作者:  
摘自《JavaScript: The Good Parts》,作為讀書筆記備用。對于追求執(zhí)行效率的朋友可以參考下。
如果有一個 fibonacci 數(shù)列要計算:
復(fù)制代碼 代碼如下:

var fibonacci = function (n) {
return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
};

恐怕數(shù)字一大瀏覽器就會崩掉了,因為運算過程中函數(shù)會有大量重復(fù)的計算。但 JavaScript 強大的數(shù)組和函數(shù)閉包可以輕松實現(xiàn)對已計算的結(jié)果記憶。運算速度會有指數(shù)級的提高。

小而強大的記憶函數(shù):
復(fù)制代碼 代碼如下:

var memoizer = function (memo, fundamental) {
var shell = function (n) {
var result = memo[n];
if (typeof result !== 'number') {
result = fundamental(shell, n);
memo[n] = result;
}
return result;
};
return shell;
};

第一個參數(shù)為初始記憶數(shù)列,第二個參數(shù)為基礎(chǔ)函數(shù)。用起來就更簡單啦:
復(fù)制代碼 代碼如下:

var fibonacci = memoizer([0, 1], function (shell, n) {
return shell(n - 1) + shell(n - 2);
});

類似的,如果要算 factorial 數(shù)列:
復(fù)制代碼 代碼如下:

var factorial = memoizer([1, 1], function (shell, n) {
return n * shell(n - 1);
});

相關(guān)文章

  • 手把手帶你入門微信小程序新框架Kbone的使用

    手把手帶你入門微信小程序新框架Kbone的使用

    這篇文章主要介紹了手把手帶你入門微信小程序新框架Kbone的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • JavaScript躲避行星游戲?qū)崿F(xiàn)全程

    JavaScript躲避行星游戲?qū)崿F(xiàn)全程

    本文將使用 canvas 創(chuàng)建一個躲避小行星游戲。另外將重點介紹的兩個方面是:如何使用 JavaScript 來檢測鍵盤輸入,以及如何在游戲中使用和處理 HTML5 音頻。希望你能夠喜歡
    2022-08-08
  • javascript實現(xiàn)10個球隨機運動、碰撞實例詳解

    javascript實現(xiàn)10個球隨機運動、碰撞實例詳解

    這篇文章主要介紹了javascript實現(xiàn)10個球隨機運動、碰撞的方法,實例分析了javascript實現(xiàn)小球碰撞的原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • JS幻燈片可循環(huán)播放可平滑旋轉(zhuǎn)帶滾動導(dǎo)航(自寫)

    JS幻燈片可循環(huán)播放可平滑旋轉(zhuǎn)帶滾動導(dǎo)航(自寫)

    本文為大家介紹下實現(xiàn)JS幻燈片可循環(huán)播放帶滾動導(dǎo)航可平滑旋轉(zhuǎn)的全過程,效果還不錯,由需要的朋友可以參考下,希望對大家有所幫助
    2013-08-08
  • JavaScript監(jiān)聽鍵盤事件代碼實現(xiàn)

    JavaScript監(jiān)聽鍵盤事件代碼實現(xiàn)

    這篇文章主要介紹了JavaScript監(jiān)聽鍵盤事件代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 淺談JavaScript 代碼整潔之道

    淺談JavaScript 代碼整潔之道

    這篇文章主要介紹了淺談JavaScript 代碼整潔之道,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 最新評論

    任丘市| 曲阳县| 华蓥市| 日喀则市| 休宁县| 新巴尔虎右旗| 探索| 庆城县| 汉源县| 石柱| 靖安县| 桃园县| 桦川县| 道真| 民和| 阜南县| 黑河市| 苏尼特左旗| 社旗县| 左权县| 安达市| 安多县| 扬中市| 庆城县| 安达市| 巩留县| 盘山县| 灵川县| 宜兰市| 闵行区| 思南县| 乐亭县| 南澳县| 浦北县| 若羌县| 东乡| 麻城市| 北碚区| 准格尔旗| 瓮安县| 南阳市|