Actionscript 3 生成从0到10的随机数,包括两者

Actionscript 3 生成从0到10的随机数,包括两者,actionscript-3,Actionscript 3,我听说过一些Math.random(),但我不确定是否正确使用它。数字必须是整数,所以我想我需要一些舍入函数。Math.round(Math.random()*10);可能吧?Math.round(Math.random()*10);可能吧?Math.random()返回一个介于0-1之间的数字。将它乘以10,然后用整数取整 // random number between 1- 10 var randomRounded : int = Math.round(Math.random() * 10

我听说过一些
Math.random()
,但我不确定是否正确使用它。数字必须是整数,所以我想我需要一些舍入函数。

Math.round(Math.random()*10);可能吧?

Math.round(Math.random()*10);可能吧?

Math.random()返回一个介于0-1之间的数字。将它乘以10,然后用整数取整

// random number between 1- 10
var randomRounded : int = Math.round(Math.random() * 10);
编辑:更准确的版本

// more accurate
var randomRounded : int = Math.floor(Math.random() * 11);
random()返回一个介于0到1之间的数字。将它乘以10,然后用整数取整

// random number between 1- 10
var randomRounded : int = Math.round(Math.random() * 10);
编辑:更准确的版本

// more accurate
var randomRounded : int = Math.floor(Math.random() * 11);

Math.random生成一个介于[0;1[(包括0,但不包括1)之间的伪随机数 要使0到10之间的所有数字具有均匀分布的概率,您需要:

var a : int = Math.floor( Math.random() * 11 )

Math.random生成一个介于[0;1[(包括0,但不包括1)之间的伪随机数 要使0到10之间的所有数字具有均匀分布的概率,您需要:

var a : int = Math.floor( Math.random() * 11 )

Mattias的说法几乎正确。然而,他的代码具有不均匀的概率分布。与0和10相比,从1到9的所有数字生成的概率都是0和10的两倍。例如,如果伪随机数生成器生成0.5,则会生成1,但也会生成1.499999999。但只有当随机数为n时,才会生成0数字介于0和0.499999999之间,这同样适用于10。有关正确的代码,请参见我的答案。很好的解释:)。但我不需要那么精确。快速更正:将浮点
数字
指定给
int
会截断该值-小数点后的任何值都会被丢弃。因此,4.4和4都会被丢弃。这实际上等同于
Math.floor()
,而不是
Math.round()
。Mattias的观点几乎正确。然而,他的代码的概率分布不均匀。与0和10相比,从1到9的所有数字生成的概率都是0和10的两倍。例如,如果伪随机数生成器生成0.5,则会生成1,但也会生成1.499999999。但只有当随机数介于0和0.499999999之间,同样适用于10。有关正确的代码,请参阅我的答案。很好的解释:)。不过,我没有必要那么精确。快速更正:将浮点
数字
指定给
int
会截断该值-小数点后的任何值都会被丢弃。因此,这两个4都是。4和4.9变成4。这实际上等同于
Math.floor()
,而不是
Math.round()
。这是最好的方法。这是最好的方法。检查本教程:检查本教程: