• 453


    w调用函数次数的计算。

    JavaScript: The Good Parts

    <script>
    var w = 0;
    var w0 =0;
    var w10 =0;

    var fibonacci = function (n) {
    w++
    console.log(n)
    if(n==0)w0++
    if(n==10)w10++

    return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
    };

    for (var i = 0; i <= 10; i += 1) {
    document.writeln('// ' + i + ': ' + fibonacci(i));
    }

    console.log(w)
    console.log(w0)
    console.log(w10)

    </script>

    0 1
    1 1
    2 1 1 2 1+2=3
    3 2 1 3 1+4=5
    4 3 2 5 1+8=9
    5 5 3 8 1+14=15
    6 8 5 13 1+24=25
    7 13 8 21 1+40=41
    8 21 13 34 1+66=67
    9 34 21 55 1+108=109
    10 55 34 89 1+176=177
            453


    <script type="text/javascript">
    <!--
        var w = function(n){
            return n<2 ? 1 : w(n-1)+w(n-2) 
        }
    //-->
    </script>

    4.15. Memoization

    Functions can use objects to remember the results of previous operations, making it possible to avoid unnecessary work. This optimization is called memoization. JavaScript's objects and arrays are very convenient for this.

    Let's say we want a recursive function to compute Fibonacci numbers. A Fibonacci number is the sum of the two previous Fibonacci numbers. The first two are 0 and 1:

    var fibonacci = function (n) {
        return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
    };
    
    for (var i = 0; i <= 10; i += 1) {
        document.writeln('// ' + i + ': ' + fibonacci(i));
    }
    
    // 0: 0
    // 1: 1
    // 2: 1
    // 3: 2
    // 4: 3
    // 5: 5
    // 6: 8
    // 7: 13
    // 8: 21
    // 9: 34
    // 10: 55

  • 相关阅读:
    .c 文件取为.o文件
    wildcard 处理全部文件
    专家解读Linux操作系统内核中的GCC特性
    Yeoman:适合现代Web应用的现代工作流
    【转】nodejs
    node.js
    2019暑假集训 种树
    2019.6.5 NOIP2014 day2 t2 寻找道路
    2019.6.1 最优贸易
    2019.5.11 海淀区赛之杯子
  • 原文地址:https://www.cnblogs.com/rsapaper/p/6395941.html
Copyright © 2020-2023  润新知