2 randomterror RandomTerror 于 2014.03.07 10:29 提问

求一个抽奖算法,最好java实现

需求如下:
总共分四等奖,
1等奖名额2个,中奖概率2/10000
2等奖名额10个,中奖概率5/1000
3等奖名额100个,中奖概率10/100
4等奖名额880个,中奖概率25/100

求一个算法,算出用户单次抽奖中奖等级(1,2,3,3等奖或不中奖)。
最好java实现。

3个回答

dongleivip
dongleivip   2014.03.07 10:48

说个最简单的,用java的随机函数、用Random类生成随机数,也可以用Math类中的random生成
区别看这里:http://liukai.iteye.com/blog/433718

选取一定的区间,比如0-1最为一等奖2/10000 ,选取一个50的区间作为2等奖50/10000 ...
这样应该能满足你书的概率吧。
只是说一个思路。

lixunhui58858
lixunhui58858   2015.06.10 23:04

如果是多用户抽奖怎么算

caozhy
caozhy   Ds   Rxr 2015.06.10 23:08

最简单的,比如你要2/10000概率,那么就用Random.NextDouble()返回一个随机数,因为随机数在0~1之间均匀分布,那么它在0~2/10000的概率就是0/10000
代码如下:
Double d = new Random().NextDouble();
if (d <= 2/10000.0)
中奖

Csdn user default icon
上传中...
上传图片
插入图片