【问题标题】:Possibility of flash Math.random() returning 1flash Math.random() 返回 1 的可能性
【发布时间】:2013-01-03 15:15:22
【问题描述】:

我们都知道老Math.random()。它返回一个介于 0 和 1 之间的随机浮点数。

我似乎找不到任何证据表明零或一是排斥的还是包容的。

我知道,如果它们是包容性的,那么达到其中任何一个值的概率都非常低。

但我不禁想知道是否应该浪费一个 if 语句来寻找它。

在我目前的情况下,零不是问题,但一个是问题。

var __rand:uint = Math.floor( Math.random() * myArray.length );
var result:String = myArray[__rand];

如果 Math.random() 中的 1 是独占的,那么我会知道它永远不会是 1,因此 __rand 永远不会等于 myArray.length 并且应该始终低于它。但只是不确定我是否应该浪费如果我应该考虑到一些性能关键代码的时间。

PS:上面的代码不是性能关键代码,只是一个例子

基本上,只有 2 个简单的问题。 1)返回一个不可能或可能的。 2) 如果可能,是否值得考虑。

【问题讨论】:

    标签: actionscript-3 flash random


    【解决方案1】:

    根据docs

    返回一个伪随机数 n,其中 0

    所以它可以是0但不是1。你不必担心索引超出范围。

    顺便说一下,如果这真的是性能关键代码,最好将值转换为 int 或 uint 而不是使用 Math.floor(请参阅 this performance test)。

    【讨论】:

      【解决方案2】:

      Math.random 将返回一个介于 0 和(1 除外)之间的数字。永远不会返回 1。

      【讨论】:

      • 如 Pixel Elephant 的回答中所述,0 是包容性的。
      • 是我写的,还是不是? 0 到 1 之间的独占。
      • 0 in inclusive 即 random() 可以返回 0 而 1 是 exclusive 即永远不会返回。
      猜你喜欢
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多