这是计算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';
}发布于 2011-10-20 19:16:36
为了能够使用rand()并将您的方法与一个十进制值一起使用,您可以使用以下方法:
if(rand(1, 1000) <= 35) {发布于 2011-10-20 19:18:26
我认为你会想要学究:
if(rand(1,100) <= 25) {
echo 'success';
} else {
echo 'failed';
}例如,你从一组100个数字中抽出;其中25个被算作成功,因此P(成功)= 25%
docs for rand说它返回一个整数,所以要做分数,你需要缩放,例如3.5%:
if(rand(1,1000) <= 35) {
echo 'success';
} else {
echo 'failed';
}正如其他人所建议的,您还可以使用mt_rand作为rand的直接替代品。根据文档,它可以比兰德快四倍,并使用流行且性能良好的Mersenne twister伪随机数生成器。
使用左手比较,即交换常量和函数调用以及颠倒比较运算符是许多coding conventions的常见组件。这是一种技术,用于防止意外使用赋值(=)而不是等于(==)时出现细微的赋值错误。
发布于 2011-10-20 19:17:59
在一个单独的函数中计算概率百分比,并将答案返回到代码主要部分的变量中,然后使用If语句检查它是否大于或等于25%,可能会更容易。这只是我的两个观点。希望能有所帮助。
https://stackoverflow.com/questions/7835052
复制相似问题