我将如何创建一个偏差在数字范围内的随机数生成器?
说我有这个:

$rnum = rand(0,200);

所以$rnum == 3和下一次$rnum == 106然后是$rnum == 10等...

但是我宁愿将偏差范围设置为80-120,因此它更可能选择偏差范围内的数字而不是偏差范围之外的数字。
$rnum == 86,下次是$rnum == 112,然后是$rnum == 93,但仍然可以$rnum == 24等。

我以为我可能可以做到这一点:
if($rnum < $middle_of_bias){
    $rnum++;
}else{
    $rnum--;
}

但是并没有真正起作用,因为您可以看到施加偏倚后$rnum == 1是否只会使其变成2,从而使此方法无法成功完成。

谢谢你的帮助。

编辑:每个人的回答都很好。我真的很喜欢gnur的那个和Phil H的那个,我对rmflow的那个做了一些修改,并且按我的意愿正在工作。 感谢所有提供帮助的人!
if (rand(0, 10) > 2)
{
    $rnum = rand($low, $high);
}else{
    $rnum = rand(0, $max);
}

最佳答案

if (rand(0, 10) > 7)
{
    $rnum = rand(80, 120);
}
else
{
    $rnum = rand(0, 200);
}

09-25 21:12