日期:2014-05-20  浏览次数:20613 次

请教一个按照概率抽取奖品的算法
譬如有若干个奖品,   当客户触发某事件的时候,   就会根据这些奖品各自的概率抽取一份奖品出来应该怎么实现呢?

例:
GiftA   :   50%
GiftB   :   15%
GiftC   :   25%
GiftD   :   10%


------解决方案--------------------
int n = 50;
Random r = new Random();
if(r.nextInt(100)+1 <= n) {
//........
}
------解决方案--------------------
把礼物排成100长度的队列,然后GiftA : 50% 占领 a[0]--a[49]
这样在100数组里面随便random出来一个下标不就搞定了么
------解决方案--------------------
public static void main(String[] args) {
Random random = new Random();
int a = 50;
int b = 15;
int c = 25;
int d = 10;
int ra = random.nextInt(100);
if(ra <=a){
System.out.println( "a ");
}else if(a <ra&&ra <=a+b){
System.out.println( "b ");
}else if(a+b <ra&&ra <=a+b+c){
System.out.println( "c ");
}else if(a+b+c <ra&&ra <=a+b+c+d){
System.out.println( "d ");
}
}
本人不才,方法有点笨
------解决方案--------------------
用摇号的来了。编写什么程序,麻烦。