这是计算25%几率的正确代码吗?
if(rand(1,100) < 25){
echo 'succes';
}else{
echo 'failed';
}
如果成功的机会应该是3.5%,我可以将25改为3.5?
或者这样更好吗?
if (25 >= mt_rand(1,100)){
echo 'succes';
}else{
echo 'failed';
}
答案 0 :(得分:1)
为了能够使用rand()
并使用带有一个十进制值的方法,您可以使用以下内容:
if(rand(1, 1000) <= 35) {
答案 1 :(得分:1)
我认为你想要迂腐:
if(rand(1,100) <= 25) {
echo 'success';
} else {
echo 'failed';
}
即你从一组100个数字中抽取;其中25个被计为成功,因此P(成功)= 25%
docs for rand说它返回一个int,所以你需要进行缩放,例如3.5%:
if(rand(1,1000) <= 35) {
echo 'success';
} else {
echo 'failed';
}
正如其他人所建议的那样,您也可以使用mt_rand作为rand的直接替代品。根据文档,它可以比rand快四倍,并使用流行且表现良好的Mersenne twister伪随机数生成器。
使用左手比较,即交换常量和函数调用以及反转比较运算符是许多coding conventions的常见组件。当一个意外使用赋值(=)而不是equals(==)时,这被用作防止细微分配错误的技术。
答案 2 :(得分:0)
在单独的函数中计算百分比几率可能更容易,并将答案返回到代码主要部分的变量中,然后使用if语句检查它是否大于或等于25%。只是我的两分钱。希望它有所帮助。