【问题标题】:Javascript - generate more than one random numbers without loopJavascript - 生成多个随机数而没有循环
【发布时间】:2012-07-27 07:26:21
【问题描述】:

我想用n 随机数生成一个数组(即n 调用Math.random())。 我不在乎它们是否独特

目前我正在使用循环:

let numbers = [];
for (let i = 0; i < n; ++i) {
    numbers.push(Math.random());
}

我只是想知道这是否可以向量化 - 例如在其他语言中,我希望像 Math.random(n) 这样的东西会产生一个由 n 随机数组成的数组。还是循环是 Javascript 的方式?

干杯。

【问题讨论】:

  • AFAIK 这是在 javascript 数组中生成和存储 n 个随机数的最佳方法
  • 嗯,好的。从 Matlab/R.python 的角度来看,将 JS 视为一种类似的高级语言,我只是认为它可能在这个意义上被矢量化了。

标签: javascript random vectorization


【解决方案1】:

这样或那样你仍然会在下面的某个地方得到一个循环 - 即使有任何用于 javascript 的“矢量化”库,它也会归结为循环。

【讨论】:

  • 好的,干杯。我来自 Matlab/R/python 背景,所以当我看到循环时,我的第一直觉仍然是“矢量化!” - 即使归结为循环,由于实现,内置矢量化方法通常比显式循环快得多。只是想知道 Javascript 是否也有这种心态。
【解决方案2】:

在某些情况下,“懒惰”可能会有所帮助。 如果您不确定是否需要所有 n 个生成的数字。您最好使用 yield 进行惰性实现...

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多