自己参考别人写的一个抽奖代码
自己参考别人写的一个抽奖代码
IceRainYWC 发表于4年前
自己参考别人写的一个抽奖代码
  • 发表于 4年前
  • 阅读 202
  • 收藏 1
  • 点赞 0
  • 评论 1

新睿云服务器60天免费使用,快来体验!>>>   

import java.util.Random;
public class PrizeGenerator {
 public static final int MAXBASE = 10000;//基数
 public static int counter = 0;
 /**
  * @param args
  */
 public static void main(String[] args) {
  for(int i=0;i<MAXBASE;i++){
   gerneratePrize();
  }
  System.out.println(">>>>>>>>>>>>中一等奖次数:"+counter);
 }
 
 public static int randomNumber(int minNum,int maxNum){
  Random rand = new Random();
  int randomNum = rand.nextInt(maxNum);
  randomNum = randomNum%(maxNum-minNum+1)+minNum;
  return randomNum;
 }
 
 public static void gerneratePrize(){
  int[][] prizeOption = {{1,1},{2,2},{3,20},{4,77}};//{4,77}表示奖品等级是4(未中将),中奖率是77%
  int rand = randomNumber(1, MAXBASE);
  int line = 0;  
  int temp = 0;
  for ( int i = 0; i < prizeOption.length; i++) {  
        int[] prize = prizeOption[i];  
        int rate = prize[1];  
        temp = temp + rate*(MAXBASE/100);  
        line = MAXBASE - temp;  
        if (rand > line && rand <= (line + rate)) {
               if(i==1){
                counter++;
                System.err.print("抽奖随机数:"+rand);
                System.err.println("中了一等奖!");
               }else{
                System.out.println("中了"+prizeOption[i][0]+"等奖!");
               }
            break;  
        } 
  }
 }
}

不知写的有什么不对,请大家指正!

注:参考文章JS大转盘抽奖

标签: 抽奖
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 13
博文 68
码字总数 45315
评论 (1)
星神_
首先,rand<=(line+rate)貌似是个错误,没line并没有记录每一次的line,1等奖概率1,而2等奖概率就变为了3,
×
IceRainYWC
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: