【问题标题】:Will JavaScript random function ever return a 0 or 1?JavaScript 随机函数会返回 0 还是 1?
【发布时间】:2012-07-28 15:19:09
【问题描述】:

JavaScript 的 Math.random() 能否准确返回 0 或 1?

【问题讨论】:

  • 根据文档,Math.random() 将返回一个介于 0(包括)和 1(不包括)之间的数字。重要的部分是包容性/排他性的。包容意味着它被包括在内,独占意味着它不是。所以 Math.random 可以返回 0(因为它是包含的)但不能返回 1(因为它是独占的)

标签: javascript


【解决方案1】:

来自 ECMAScript 规范:

返回一个大于等于 0 的正号数值 但小于 1,随机或伪随机选择,大约 在该范围内均匀分布,使用 依赖于实现的算法或策略。这个函数不需要 论据。

来源:http://ecma-international.org/ecma-262/5.1/#sec-15.8.2.14

【讨论】:

  • 所以。我是否正确假设使用 random 随机选择一个数组元素,永远不会选择最终的数组值,即 Math.floor(Math.random() * namesArray.length) ??
  • @Hightower 如果有3个数组元素,那么Math.random() * namesArray.length将是[0, 3)范围内的数字,可以平分[0, 1)[1, 2)[2, 3) .如果数字在最后一个部分,例如2.4,则Math.floor 结果为2,这是最后一个数组元素的索引。
【解决方案2】:

是和否,按此顺序。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

返回[0, 1) 范围内的浮点伪随机数,即从 0(包括)到但不包括 1(不包括),然后您可以将其缩放到所需的范围。

【讨论】:

    【解决方案3】:

    它不会返回 1

    返回 [0, 1) 范围内的浮点伪随机数,即从 0(包括)到但不包括 1(不包括),然后您可以将其缩放到所需的范围。

    见:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

    【讨论】:

      【解决方案4】:

      0 表示是,1 表示否。

      https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random

      返回 [0, 1) 范围内的浮点伪随机数 即从 0(含)到但不包括 1(不含), 然后您可以将其缩放到您想要的范围。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 2016-07-21
        • 2011-04-01
        • 1970-01-01
        • 2016-11-03
        • 2020-12-25
        • 2014-06-14
        相关资源
        最近更新 更多