彩票號碼生成算法


          閑來無事,我做了一個彩票號碼生成器,該程序是個通用程序,方法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)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南和县| 佛山市| 荃湾区| 博客| 桃源县| 攀枝花市| 洛南县| 中山市| 特克斯县| 贵德县| 平邑县| 珠海市| 察隅县| 大厂| 天气| 阿瓦提县| 平潭县| 方城县| 宝应县| 南京市| 明水县| 克拉玛依市| 镇平县| 凤城市| 德令哈市| 富平县| 尼勒克县| 密云县| 河源市| 河西区| 永顺县| 澄迈县| 壶关县| 凭祥市| 伊金霍洛旗| 遵义县| 宁波市| 罗山县| 手游| 温州市| 神农架林区|