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.01.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)