【问题标题】:Math.random() vs random() in Khan Academy Computer Programming [closed]可汗学院计算机编程中的 Math.random() 与 random() [关闭]
【发布时间】:2020-02-12 15:07:40
【问题描述】:

有谁知道在可汗学院的编程环境中使用Math.random() 或random() 是否更好(内存方面,还是更快)?

以“随机”为例,我指的是任何数学库,真的。

谢谢!

【问题讨论】:

    标签: javascript html5-canvas processing.js khan-academy


    【解决方案1】:

    processing.js 在内部使用Math.random() 作为其内部随机数生成器。除了取决于参数的一些额外的乘法步骤之外,它们基本上是相同的。

    var internalRandomGenerator = function() { return Math.random(); };
    
    p.random = function() {
        if(arguments.length === 0) {
            return internalRandomGenerator();
        }
        if(arguments.length === 1) {
            return internalRandomGenerator() * arguments[0];
        }
        var aMin = arguments[0], aMax = arguments[1];
        return internalRandomGenerator() * (aMax - aMin) + aMin;
    };
    

    Source code

    【讨论】:

      【解决方案2】:

      在 PC 上进行数学计算时,无论您使用哪种方式,都不会产生明显的差异。即使您正在生成数千甚至数百万个随机数,您的计算机也能够比眨眼更快地处理它。

      如果速度和/或内存是一个主要问题,那么您可以尝试一些第三方库,例如this,但是请记住,如果内存(如项目大小而不是内存)是一个问题,那么最好不要添加太多额外的模块或库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-31
        • 1970-01-01
        • 1970-01-01
        • 2014-03-30
        • 2015-12-06
        • 1970-01-01
        相关资源
        最近更新 更多