彩票號碼生成算法


          閑來無事,我做了一個彩票號碼生成器,該程序是個通用程序,方法generateNumber(M, N, P)表示M選N的彩票買了P注,
          例如:generateNumber(35, 7, 5);表示35選7買5注.本程序在JDK1.5,Eclipse3.1.2下測試成功!

           

          import  java.util.ArrayList;
          import  java.util.Collections;
          import  java.util.HashSet;
          import  java.util.List;
          import  java.util.Random;
          import  java.util.Set;

          /**
           * 
          @author  我為J狂
           *
           
          */


          public   class  GenerateNumber 

          {
              
          public   static   void  generateNumber( int  m,  int  n,  int  p)
              
          {
                  
          for  ( int  i  =   0 ; i  <  p; i ++ )
                  
          {
                      Set
          < Integer >  numbers  =   new  HashSet < Integer > ();
                      
          while  ( true )
                      
          {
                          Random random 
          =   new  Random();
                          
          int  newNumber  =  random.nextInt(m);
                          numbers.add(newNumber 
          +   1 );

                          
          if  (numbers.size()  ==  n)
                          
          break ;
                      }

                      List
          < Integer >  sortNumbers  =   new  ArrayList < Integer > (numbers);
                      String numberStr 
          =   "" ;
                      Collections.sort(sortNumbers);
                      
          for  ( int  num : sortNumbers)
                     
          {
                         String number 
          =   "" ;
                          
          if  (num  <   10 )
                          number 
          =   " 0 "   +  num;
                          
          else
                          number 
          =  String.valueOf(num);
                          
          if  ( ! numberStr.equals( "" ))
                          numberStr 
          +=   " , " ;
                          numberStr 
          +=  number;
                      }

                      System.out.print(numberStr);
                      System.out.println();
                  }

           }


           
          public   static   void  main(String[] args)
           
          {
               generateNumber(
          35 7 5 ); // 35選7買5注
           }

          }




          posted on 2007-02-26 14:37 我為J狂 閱讀(2276) 評論(2)  編輯  收藏 所屬分類: Java算法

          評論

          # re: 彩票號碼生成算法[未登錄] 2007-04-14 15:55 STONE

          看了你的幾篇文章,好像你比較喜歡用
          String s = "";
          s += "xxx";
          的方式來拼接字符串,為什么不用StringBuffer呢,難道你是不知道這樣會有更優的情能嗎,還是只是這樣寫比較方便些?  回復  更多評論   

          # re: 彩票號碼生成算法 2007-04-14 17:26 我為J狂

          @STONE
          謝謝您的提醒,以后我會注意的,下不為例,呵呵。
          以上的關于String的代碼應該改為:
          StringBuffer numberStr=new StringBuffer("");
          if (!numberStr.toString().equals(""))
          numberStr .append(" , ") ;

          numberStr.append(number);  回復  更多評論   

          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 葫芦岛市| 无为县| 南丰县| 揭阳市| 东明县| 星子县| 吴堡县| 江陵县| 徐州市| 萍乡市| 长岛县| 枣庄市| 瑞昌市| 凉城县| 凤庆县| 会宁县| 长治县| 桦甸市| 斗六市| 宁晋县| 深州市| 镇坪县| 武功县| 来凤县| 洪泽县| 巴楚县| 厦门市| 平利县| 潍坊市| 房山区| 怀化市| 饶河县| 上林县| 教育| 青州市| 屯昌县| 扎鲁特旗| 婺源县| 白河县| 千阳县| 宣威市|