flash的可能性Math.random()返回1

WOR*_*MSS 0 random flash actionscript-3

我们都知道老了Math.random().它返回0到1之间的随机浮点数.

我似乎无法找到任何证据,如果零或一个是排他性的或包容性的.

我知道如果它们具有包容性,那么击中这些值中的任何一个的可能性就会非常低.

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

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

var __rand:uint = Math.floor( Math.random() * myArray.length );
var result:String = myArray[__rand];
Run Code Online (Sandbox Code Playgroud)

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

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

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

Pix*_*ant 6

根据文档:

返回伪随机数n,其中0 <= n <1.返回的数字以未公开的方式计算,并且是"伪随机的",因为计算不可避免地包含一些非随机性元素.

所以它可以是0而不是1.你不必担心索引越界.

顺便说一下,如果这是真正的性能关键代码,那么最好不要将值转换为int或uint而不是使用Math.floor(请参阅此性能测试).