国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

函數(shù)記憶

jokester / 1695人閱讀

摘要:函數(shù)可以將先前操作的結(jié)果記錄在某個(gè)對象里,從而避免無謂的重復(fù)運(yùn)算。這種優(yōu)化被稱為記憶。在看看斐波那契數(shù)列的栗子使用了函數(shù)記憶,調(diào)用次數(shù)從次減少到了次。

函數(shù)可以將先前操作的結(jié)果記錄在某個(gè)對象里,從而避免無謂的重復(fù)運(yùn)算。這種優(yōu)化被稱為記憶。

最近讀javascript語言精粹這本書函數(shù)章節(jié)的時(shí)候,里面有個(gè)記憶函數(shù)的優(yōu)化,書中給的栗子是斐波那契數(shù)列執(zhí)行的時(shí)候減少調(diào)用次數(shù)的優(yōu)化,那么這種優(yōu)化能在哪些場景使用呢?

在看書中的栗子之前,我們先看一個(gè)栗子:

var memorize = function(f,hasher){
    var memoize = function(name){
        var cache = memoize.cache;
        var key = "" + (hasher ? hasher.apply(this,arguments):name)
        if(!cache[key]){
            cache[key] = f.apply(this,arguments);
        }
        return cache[key];
    }
    memoize.cache = {};
    return memoize;
}

function add(a,b){
    return a+b;
}

var memorizedAdd = memorize(add,function(){
    var args = Array.prototype.slice.call(arguments);
    return JSON.stringify(args);
});


console.time("使用函數(shù)記憶執(zhí)行時(shí)間");
for(var i = 0; i < 10000;i++){
    memorizedAdd(1,2);
}
console.timeEnd("使用函數(shù)記憶執(zhí)行時(shí)間");


console.time("原生調(diào)用執(zhí)行時(shí)間");
for(var i = 0; i < 10000;i++){
    add(1,2);
}
console.timeEnd("原生調(diào)用執(zhí)行時(shí)間");

//使用函數(shù)記憶執(zhí)行時(shí)間: 15.49462890625ms
//原生調(diào)用執(zhí)行時(shí)間: 0.962890625ms

上面的memoize方法來自u(píng)nderscore源碼,這說明函數(shù)記憶并不是萬能的。

在看看斐波那契數(shù)列的栗子:

var count = 0;
var fibonacci = function(n){
    count++;
    return n< 2 ? n : fibonacci(n-1) + fibonacci(n-2);
}
for(var i = 0; i <= 10;i++){
 fibonacci(i);
}
console.log(count);//453

fibonacci = memorize(fibonacci);
for(var i = 0; i <= 10;i++){
 fibonacci(i);
}
console.log(count);//12

使用了函數(shù)記憶,調(diào)用次數(shù)從453次減少到了12次。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90440.html

相關(guān)文章

  • SPA 路由記憶

    摘要:路由記憶名詞解釋在中后臺(tái)系統(tǒng)開發(fā)中,訪問任何頁面時(shí),認(rèn)證是永遠(yuǎn)繞不過的檻。這個(gè)過程,暫且稱之為路由記憶,前面例子中的登錄頁面稱之為記憶節(jié)點(diǎn)。 SPA 路由記憶 名詞解釋 在中后臺(tái)系統(tǒng)開發(fā)中,訪問任何頁面時(shí),認(rèn)證是永遠(yuǎn)繞不過的檻。以登錄為例,如果檢測出當(dāng)前用戶未登錄,會(huì)強(qiáng)制跳轉(zhuǎn)到登錄頁面提示用戶進(jìn)行登錄。登錄完成后,系統(tǒng)需要跳轉(zhuǎn)至用戶原先想訪問的頁面。這個(gè)過程,暫且稱之為路由記憶,前面例...

    starsfun 評(píng)論0 收藏0
  • 深度解析LSTM神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)原理

    摘要:而從數(shù)學(xué)上看的話,更是短時(shí)記憶了,因?yàn)樘荻攘鹘?jīng)的時(shí)候,經(jīng)歷的是的連環(huán)相乘的路徑在輸入輸出門關(guān)閉前,顯然如前邊的數(shù)學(xué)證明中所述,這樣會(huì)發(fā)生梯度爆炸和 引人入勝的開篇:想要搞清楚LSTM中的每個(gè)公式的每個(gè)細(xì)節(jié)為什么是這樣子設(shè)計(jì)嗎?想知道simple RNN是如何一步步的走向了LSTM嗎?覺得LSTM的工作機(jī)制看不透?恭喜你打開了正確的文章!?前方核彈級(jí)高能預(yù)警!本文信息量非常大,文章長且思維連貫...

    jay_tian 評(píng)論0 收藏0
  • JavaScript專題之函數(shù)記憶

    摘要:專題系列第十七篇,講解函數(shù)記憶與菲波那切數(shù)列的實(shí)現(xiàn)定義函數(shù)記憶是指將上次的計(jì)算結(jié)果緩存起來,當(dāng)下次調(diào)用時(shí),如果遇到相同的參數(shù),就直接返回緩存中的數(shù)據(jù)。 JavaScript 專題系列第十七篇,講解函數(shù)記憶與菲波那切數(shù)列的實(shí)現(xiàn) 定義 函數(shù)記憶是指將上次的計(jì)算結(jié)果緩存起來,當(dāng)下次調(diào)用時(shí),如果遇到相同的參數(shù),就直接返回緩存中的數(shù)據(jù)。 舉個(gè)例子: function add(a, b) { ...

    RobinTang 評(píng)論0 收藏0
  • 函數(shù)式編程之記憶 js

    函數(shù)式編程之記憶是一種時(shí)間換空間的方法,用犧牲空間的復(fù)雜度來換取時(shí)間的復(fù)雜度 字符串連接 function f() { var s = arguments.length + Array.prototype.join.call(arguments); console.log(s); }; 這里使用的是Array.prototype.join方法進(jìn)行字符串連接返回的是連接的結(jié)果 接下來,寫一個(gè)...

    DC_er 評(píng)論0 收藏0
  • LSTM入門必讀:從基礎(chǔ)知識(shí)到工作方式詳解

    摘要:意味著完全保持,意味著完全丟棄。卡比獸寫這篇博文的時(shí)間我本可以抓一百只,請看下面的漫畫。神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)會(huì)以的概率判定輸入圖片中的卡比獸正在淋浴,以的概率判定卡比獸正在喝水,以的概率判定卡比獸正在遭遇襲擊。最終結(jié)果是卡比獸正在遭遇襲擊 我第一次學(xué)習(xí) LSTM 的時(shí)候,它就吸引了我的眼球。事實(shí)證明 LSTM 是對神經(jīng)網(wǎng)絡(luò)的一個(gè)相當(dāng)簡單的擴(kuò)展,而且在最近幾年里深度學(xué)習(xí)所實(shí)現(xiàn)的驚人成就背后都有它們...

    alanoddsoff 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

jokester

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<