zoukankan      html  css  js  c++  java
  • 双色球抽奖随机算法-Java实现

    第一次写技术博客,写一下以前写的一个双色球抽奖随机算法。

    原理如下:

    1首先初始化一个待抽奖的数组nums,数组的长度k

    2. 随机一个1-k之间的随机数,得到nums【k】,这样得到第一个抽奖号,nums中剔除该号码,k--。

    3. 重复步骤2,直到得到全部中奖号码

     1 class myLuck 
     2 {        
     3     private int mTarget;    
     4     List<Integer> mNums = new ArrayList<Integer>(); //摇奖池
     5     
     6     ///从多少个数中产生多少个数
     7     ///例如 33选6 则Source=33,Target=6;
     8     myLuck(int vSource,int vTarget) {        
     9         for (int i = 1; i <=vSource ; i++) {            
    10             mNums.add(i);
    11         }
    12         mTarget=vTarget;
    13     }
    14     
    15     public String GetNums()
    16     {        
    17         String xString="";
    18         for (int i =0;i<mTarget; i++) 
    19         {
    20             int _index=(int)(Math.random()* mNums.size());
    21             xString+=mNums.get(_index)+" ";
    22             //System.out.print("("+(_index+1)+")"+mNums.get(_index)+"-");    
    23             //如何删除一个元素
    24             mNums.remove(_index);
    25         }    
    26         return xString;
    27     }    
    28 }

    调用方式如下:

    myLuck _red=new  myLuck(33, 6);    
    myLuck _blue=new myLuck(16,1);
    String Str =_red.GetNums() +","+_blue.GetNums();

    很简单,将结果输出即可~

    微信:xujianshi2012
  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/jsxu/p/6932829.html
Copyright © 2011-2022 走看看