Javaによる双色球抽選ランダムアルゴリズムの例

1305 ワード

初めて技術ブログを書きます。以前書いた二色球の抽選ランダムアルゴリズムを書いてください。
原理は以下の通りです
1は、最初に1つの抽選対象の行列numsを初期化し、配列の長さk
2.ランダムに1つの1-kの間の乱数を取って、nums【k】を得て、このように第1の抽選番号を得て、numsの中でこの番号を削除して、k--。
3.すべての当選番号がもらえるまで、手順2を繰り返します。

class myLuck 
{    
  private int mTarget;  
  List<Integer> mNums = new ArrayList<Integer>(); //   
  
  ///            
  ///   33 6  Source=33,Target=6;
  myLuck(int vSource,int vTarget) {    
    for (int i = 1; i <=vSource ; i++) {      
      mNums.add(i);
    }
    mTarget=vTarget;
  }
  
  public String GetNums()
  {    
    String xString="";
    for (int i =0;i<mTarget; i++) 
    {
      int _index=(int)(Math.random()* mNums.size());
      xString+=mNums.get(_index)+" ";
      //System.out.print("("+(_index+1)+")"+mNums.get(_index)+"-");  
      //        
      mNums.remove(_index);
    }  
    return xString;
  }  
}
コールは以下の通りです。

myLuck _red=new myLuck(33, 6);  
myLuck _blue=new myLuck(16,1);
String Str =_red.GetNums() +","+_blue.GetNums();
簡単です。結果を出力すればいいです。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。