请教大家一个问题,如何设置概率

比如我想让用户点击一个帖子的时候,可以随机等到1-100个金币,怎么算比较科学呢,比如:
20%的概率得到1-20个金币,
20%的概率得到21-40个金币,
.
.
.
20%的概率得到90-100个金币

直接用rand太随机了,很有可能5次都是90-100个金币

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 7

我是 rand(1-100), 看跳到哪个区间就哪个

4年前 评论
Epona

rand(1,100)就好了😂,实在不行就 先rand(1,5),然后再在这个区间内rand

4年前 评论

我的意思是,怎么明确的控制,比如获得80-100个金币的可能性,可以控制在1%以内

4年前 评论

在 roll 为1% 的时候进入 80-100 再 roll

4年前 评论
wongvio (楼主) 4年前
小李世界 (作者) 4年前

@wongvio 可以用当前时间戳控制,比如 time() % 100 == 1。 就是1%的概率。 time() % 5 == 1, 就是 20%的概率。

4年前 评论

可以这样,首先设定一个比较值 比如说

$flag = 1;  //对比值
rand(0,100) == $flag 的概率就是1%
rand(0,50) == $flag 的概率就是2%
rand(0,10) == $flag 的概率就是10%
rand(0,1) == $flag 的概率就是50%
rand(0,0) == $flag 的概率就是100%
4年前 评论
L学习不停 4年前
wongvio (楼主) 4年前
一句话儿 4年前
wongvio (楼主) 4年前
Epona 4年前

如果不是特别严谨的概率抽奖的话,和你的做法是一样的。 随机生成一个数,判断这个数落在哪个区间内;如果想某个奖项的中的概率不那么大的话,区间小一点即可;

循环抽取1w次作为标本,分部在每个区间的比例就比较偏向于中奖的概率了

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!