Mar*_*eed 13
当然.
$rand = (float)rand()/(float)getrandmax();
if ($rand < 0.3)
$result = 0;
else
$result = 1;
Run Code Online (Sandbox Code Playgroud)
您也可以处理任意结果和权重.
$weights = array(0 => 0.3, 1 => 0.2, 2 => 0.5);
$rand = (float)rand()/(float)getrandmax();
foreach ($weights as $value => $weight) {
if ($rand < $weight) {
$result = $value;
break;
}
$rand -= $weight;
}
Run Code Online (Sandbox Code Playgroud)
您可以执行以下操作:
$rand = (rand(0,9) > 6 ? 1 : 0)
Run Code Online (Sandbox Code Playgroud)
rand(0,9)
会产生一个介于0到9之间的随机数,并且每当该随机生成的数字大于6(应该接近70%的时间)时,它就会给您1
其他信息0
...
显然,这对我来说似乎是最简单的解决方案,但是可以肯定的是,它不会给您1
70%的机会,但是如果正确完成的话,应该相距很近。
但是,我怀疑任何基于的解决方案rand
都将给您1
70%的时间...