首页 新闻 搜索 专区 学院

如何设计一个产生均匀分布奖品队列的算法?

0
[已解决问题] 解决于 2018-01-24 11:36

假设有奖品abc,中奖率分别为10%20%70%,如何保证奖品在队列中能够均匀分布。比如在

10次抽奖中能够接近ccbcccbcca这种队列。要求就是两个相同奖品间隔值正态分布。语言不限?

a1010的主页 a1010 | 菜鸟二级 | 园豆:202
提问于:2018-01-19 22:08
< >
分享
最佳答案
-1

这个东西可能得写个文章.

方法是总概率100.奖品3个.那就1-10奖品A,11-20奖品B,21-100奖品C

然后生成一个1-100范围内的随机数.看这个随机数落在哪个区间.

奖励园豆:5
吴瑞祥 | 高人七级 |园豆:29364 | 2018-01-19 23:45

你这样的设计只能保证随机分布奖品,不能均匀

a1010 | 园豆:202 (菜鸟二级) | 2018-01-20 13:46

@a1010: 你在说什么....

吴瑞祥 | 园豆:29364 (高人七级) | 2018-01-20 16:02

@吴瑞祥: 是这样的,因为要做高性能的奖品队列,所以奖品是预先生成好的队列。不是一人抽一次,所以对预先生成队列要求是保证每一类奖品的分部是均匀的,这里的均匀不是指数量,而是在队列中相互之间的插入间隔均匀。假设我某一个奖项中奖率3%。100个奖品队列中按照您的算法是可以达到数量接近3的生态分布的。但是不能保证这3个奖品均匀分布在队列中。比如[1,34,71]或者[25,60,93]这样的分布

a1010 | 园豆:202 (菜鸟二级) | 2018-01-22 09:05

@a1010: 然后我只要知道你们的大概概率,就可以算出应该在哪一个位置附加集中抽奖可以拿到最大奖这个意思对吧?或者我根据已经出现的二等奖,可以推算出下一次二等奖应该出现的位置?

概率老师的棺材板真的压不住了。

爱编程的大叔 | 园豆:30773 (高人七级) | 2018-01-22 09:40

@爱编程的大叔: 对,我的想法也是这样的,假设所有奖项均没有进入队列,则默认按照自有初始概率入队。入队后。下一个相同类型奖品入队的概率应该由初始随机+加权的形式入队。我的想法是比如某个奖项入队第n个位置,则在n+1出现的概率和n+m出现的概率是不一样的。越往后概率越高。大概思路就是这样,但是不知道如何写算法

a1010 | 园豆:202 (菜鸟二级) | 2018-01-22 10:04

@爱编程的大叔: 其实都不用考虑产生的个数,其实奖品个数是定了的。100个奖品。10个1等奖,20个2等奖,30个三等奖。40个谢谢惠顾。只是需要考虑如何均匀混合进入队列

a1010 | 园豆:202 (菜鸟二级) | 2018-01-22 10:49

@a1010: 如果有空还是再把大学的数学好好看看吧。如果没空的话,就不要动不动算法算法的。

就这100多个奖品的,不要搞得像是东哥或者杰克让你写个双十一抢单代码似的。

说得不好听,能听则听。

爱编程的大叔 | 园豆:30773 (高人七级) | 2018-01-22 11:02

@爱编程的大叔: 如果是100个将,我还问个啥啊,大哥。我只是举个例子。既然我都说了高性能队列。那我们的奖品至少都是百万级千万级的,而且也不可能很简单的10%,20%,30%这种概率。我拿100个只是举个例子。因为如果100个能套用的公式(好吧,我不用算法这个词了)。那理论上套用1000KW也是可以的。

a1010 | 园豆:202 (菜鸟二级) | 2018-01-22 12:44
其他回答(3)
0

同学,快跑,要不然你的概率老师来了......

爱编程的大叔 | 园豆:30773 (高人七级) | 2018-01-19 23:48
0

概率论老师的棺材板快按不住了

寞小陌 | 园豆:104 (初学一级) | 2018-01-20 11:11
0

 这还要中奖率干嘛,直接写死就好了

jqw2009 | 园豆:2412 (老鸟四级) | 2018-01-24 11:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册