js 記憶函數

來源:互聯網
上載者:User

標籤:

使用js記憶函數來計算菲波那切數列、階乘等,可以極大減少我們必須要做的工作,加速程式計算。

1.編寫記憶函數memoizer

var memoizer = function(memo, fundamental) {//memo記憶數組和fundamental函數//管理memo儲存、何時調用fundamentalvar shell = function(n) {var result = memo[n];if(typeof result !== ‘number‘) {result = fundamental(shell, n);memo[n] = result;}return result;};return shell;};

 

2.菲波那切數列

//用memoizer定義fibonacci函數var fibonacci = memoizer([0, 1], function(shell, n) {return shell(n - 1) + shell(n - 2);});fibonacci(10);>  55  //結果

3.階乘

//用memoizer定義factorial函數var factorial = memoizer([1, 1], function(shell, n) {return n * shell(n - 1);});factorial(10);>  3628800    //結果

  

 

js 記憶函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.