彩票號(hào)碼生成算法


          閑來無事,我做了一個(gè)彩票號(hào)碼生成器,該程序是個(gè)通用程序,方法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: 彩票號(hào)碼生成算法[未登錄] 2007-04-14 15:55 STONE

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

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

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

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

          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阿合奇县| 黄骅市| 淮南市| 翼城县| 常德市| 白银市| 固阳县| 福州市| 泰州市| 泸水县| 通城县| 逊克县| 武威市| 兴国县| 保亭| 保靖县| 静乐县| 温宿县| 福安市| 白河县| 嘉兴市| 汕头市| 湾仔区| 寿宁县| 铅山县| 九江市| 隆回县| 普宁市| 湘西| 耿马| 尚义县| 博湖县| 温泉县| 和田县| 喜德县| 大新县| 泰安市| 呼伦贝尔市| 乌鲁木齐县| 临洮县| 日喀则市|