我将如何创建一个偏差在数字范围内的随机数生成器?
说我有这个:
$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);
}