首页 新闻 搜索 专区 学院

红包卡券比例3:7

1
[已解决问题] 解决于 2020-11-09 11:45

生成一个1-10的随机数,如果随机数<=3给红包,否则就给卡券 这样能不能实现3:7的比例?

大da脸的主页 大da脸 | 初学一级 | 园豆:102
提问于:2020-11-07 15:54
< >
分享
最佳答案
0

不能,首先要看生成多少个数据,比如你要生成100个数字,那就是30个有红包,70个没红包,这时候在1~100 随机生成30个数字,这30个数字就按插在100个数字当中就好了

奖励园豆:5
jqw2009 | 老鸟四级 |园豆:2397 | 2020-11-09 09:27

那这样呢,3/7=0.42

每次查询出红包数量和卡券数量

红包/卡券>0.42就卡券  否则就红包

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:28

@大da脸: 没看明白,查询是啥意思?

jqw2009 | 园豆:2397 (老鸟四级) | 2020-11-09 11:32

@jqw2009: 每次发包前我从数据库查询下已获得红包的访客和 获得卡券的访客先计算下比例

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:33

@大da脸: 你这样做就不是随机了,这个可以事先定好了谁能得红包,谁能得卡券,不需要实时计算的,比如事先已经定好了,第5个人得红包,第9个人得红包等等,然后100个数组,一个个取,取到第5个就给他红包,以此类推

jqw2009 | 园豆:2397 (老鸟四级) | 2020-11-09 11:36

@jqw2009:  红包:卡券比例是3:7,参与的人数没有上限(人数不固定的),都是一次参与一个,不是多人同时参与的

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:37

@大da脸: 那就按比例来啊,比如以100为单位,100个里面有30个是红包,100个数组取完了,在重新生成100个,里面有30个红包,以此类推

jqw2009 | 园豆:2397 (老鸟四级) | 2020-11-09 11:39

@jqw2009: 我似乎没理解,如果按照这种说法是不是事先需要知道参与的总人数?

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:40

@大da脸: 不需要得,多少人都无所谓,比如以100人为单位,今天来了1000人,就会循环生成10次,今天来了5000人,就会循环生成50次,一次类推

jqw2009 | 园豆:2397 (老鸟四级) | 2020-11-09 11:41

@jqw2009: 具体思路应该怎么写?

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:43

@大da脸: 已经给你思路了啊,可以加我微信聊吧

jqw2009 | 园豆:2397 (老鸟四级) | 2020-11-09 11:45

@jqw2009: 嗯

大da脸 | 园豆:102 (初学一级) | 2020-11-09 11:45

@大da脸: 微信是?

大da脸 | 园豆:102 (初学一级) | 2020-11-10 13:53
其他回答(1)
0

如果生成非非常多的记录,我觉得可以,没看出了有啥问题,当记录数趋于无穷大时,这个比例肯定是趋于3:7的。但是如果你需要确保在生成较少记录的时候能精确保证比例是3:7,那就不行了

会长 | 园豆:10306 (专家六级) | 2020-11-09 10:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册