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

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

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

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7

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

5年前 评论
Epona

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

5年前 评论

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

5年前 评论

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

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

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

5年前 评论

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

$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%
5年前 评论
L学习不停 5年前
wongvio (楼主) 5年前
一句话儿 5年前
wongvio (楼主) 5年前
Epona 5年前

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

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

5年前 评论

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