首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是以%为单位计算机会的好代码吗?

这是以%为单位计算机会的好代码吗?
EN

Stack Overflow用户
提问于 2011-10-20 19:11:13
回答 3查看 183关注 0票数 0

这是计算25%的机会的正确代码吗?

代码语言:javascript
复制
if(rand(1,100) < 25){
    echo 'succes';
}else{
    echo 'failed';
}

如果成功的几率是3.5%,我可以把25%改为3.5%吗?

还是这样更好?

代码语言:javascript
复制
if (25 >= mt_rand(1,100)){
    echo 'succes';
}else{
    echo 'failed';
}
EN

回答 3

Stack Overflow用户

发布于 2011-10-20 19:16:36

为了能够使用rand()并将您的方法与一个十进制值一起使用,您可以使用以下方法:

代码语言:javascript
复制
if(rand(1, 1000) <= 35) {
票数 1
EN

Stack Overflow用户

发布于 2011-10-20 19:18:26

我认为你会想要学究:

代码语言:javascript
复制
if(rand(1,100) <= 25) {
    echo 'success';
} else {
    echo 'failed';
}

例如,你从一组100个数字中抽出;其中25个被算作成功,因此P(成功)= 25%

docs for rand说它返回一个整数,所以要做分数,你需要缩放,例如3.5%:

代码语言:javascript
复制
if(rand(1,1000) <= 35) {
    echo 'success';
} else {
    echo 'failed';
}

正如其他人所建议的,您还可以使用mt_rand作为rand的直接替代品。根据文档,它可以比兰德快四倍,并使用流行且性能良好的Mersenne twister伪随机数生成器。

使用左手比较,即交换常量和函数调用以及颠倒比较运算符是许多coding conventions的常见组件。这是一种技术,用于防止意外使用赋值(=)而不是等于(==)时出现细微的赋值错误。

票数 1
EN

Stack Overflow用户

发布于 2011-10-20 19:17:59

在一个单独的函数中计算概率百分比,并将答案返回到代码主要部分的变量中,然后使用If语句检查它是否大于或等于25%,可能会更容易。这只是我的两个观点。希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7835052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档