Actionscript-3最大值和最小值之间的随机数
我正在用以下代码生成一个最小值和最大值之间的随机数:Actionscript-3最大值和最小值之间的随机数,actionscript-3,math,random,Actionscript 3,Math,Random,我正在用以下代码生成一个最小值和最大值之间的随机数: return min + (max - min) * Math.random(); 它是有效的。然而,即使最大值为80,随机数也很少,通常介于“1或3”之间 如何更好地将随机数分布到所有范围 谢谢Math.Random() Math.random()返回一个介于0.0和1.0之间的随机数。要生成一个介于1和MAX之间的随机整数(我假设您想要),请尝试以下操作: Math.ceil(Math.random()*MAX); 有关Math.R
return min + (max - min) * Math.random();
它是有效的。然而,即使最大值为80,随机数也很少,通常介于“1或3”之间
如何更好地将随机数分布到所有范围
谢谢Math.Random()
Math.random()返回一个介于0.0和1.0之间的随机数。要生成一个介于1和MAX之间的随机整数(我假设您想要),请尝试以下操作:
Math.ceil(Math.random()*MAX);
有关Math.Random()的详细信息,请参阅:
- 要生成最小值和最大值之间的随机整数,请尝试以下操作:
MIN+Math.round(Math.random()*(MAX-MIN)) - 要在最小值和最大值之间生成随机小数点(浮动点数),请尝试以下操作:
MIN+Math.random()*(MAX-MIN))
Math.ceil(Math.random()*MAX);
package util
{
public class RandomNumberHelper
{
public static function randomIntRange(start:Number, end:Number):int
{
return int(randomNumberRange(start, end));
}
public static function randomNumberRange(start:Number, end:Number):Number
{
end++;
return Math.floor(start + (Math.random() * (end - start)));
}
}
}
受保护函数TestRandomIntsRange(开始:int,结束:int):无效
{
var randomIntsAssigned:Object={};
var randomInt:int=0;
对于(变量i:int=0;i<10000;i++)
{
randomInt=RandomNumberHelper.randomIntRange(开始、结束);
如果(!randomIntsAssigned.hasOwnProperty(randomInt))
randomIntsAssigned[randomInt]=0;
随机点符号[randomInt]++;
}
跟踪(随机点符号);
}
我得到的分布至少在0到9之间是相当均匀的。我非常确定您发布的代码,
返回min+(max-min)*Math.random();
,应返回最小值(包含)和最大值(排除)之间均匀分布的随机数。没有理由认为它会在1到3之间返回。。您是否尝试跟踪“最小”和“最大”以确保它们是您认为的数字?试试这个
number = (400 - (Math.floor(Math.random()*110)));
400 = max
110 = min
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
如果你的最小值和最大值也是随机的,那么可能会有1到3个是罕见的!你的功能应该正常。如果将“最小值”设置为1,“最大值”设置为10,并运行100次,您应该会看到其中大约有22个值介于1和3之间,但可能不完全相同。如果您也想得到0,可以使用:
Math.floor(Math.random()*max)代码>