當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          package com.heyang;

          /**
           * 雙色球搖獎,效率較高,只生成七次隨機數
           * 
          @author: 何楊(heyang78@gmail.com)
           * @date: 2009-2-20-下午10:52:55
           
          */

          public class DoubleColorBall2{
              
          public static void main(String[] args){
                  
          for(int j=0;j<1000;j++){
                      
          int[] ballNumbers=getSevenNumbers();        
                      
          for(int i:ballNumbers){
                          System.out.print(i
          +",");
                      }

                      
                      System.out.print(
          "\n");
                  }

              }

              
              
          /**
               * 得到七個隨機數數組
               * 
          @return
               
          */

              
          public static int[] getSevenNumbers(){
                  
          // 被選擇的原始數組
                  final int originalArrayLen=33;
                  
          int[] originalArr=new int[originalArrayLen];
                  
                  
          for(int i=0;i<originalArr.length;i++){
                      originalArr[i]
          =i+1;
                  }

                  
                  
          // 要返回的數組
                  final int arrLength=7;
                  
          int[] arr=new int[arrLength];
                  
                  
          // 選取前六個(1-33)之間
                  for(int i=0;i<6;i++){
                      
          // 生成選取數的下標
                      int index=getRandomIntergerUnder(originalArrayLen-1-i);
                      
                      
          // 把選出的數挪到最后一個,以防它被再次選取
                      int temp=originalArr[index];
                      originalArr[index]
          =originalArr[originalArrayLen-1-i];
                      originalArr[originalArrayLen
          -1-i]=temp;
                      
                      
          // 把選出的數放入要返回的數組
                      arr[i]=temp;
                  }

                  
                  
          // 最后一個從1-15中選取
                  arr[6]=getIntgerBetween(15,1);
                  
                  
          return arr;
              }

              
              
          /**
               * 取得小于max的一個隨機整數,不包括max
               * 
          @param max
               * 
          @param min
               * 
          @return
               
          */

              
          public static int getRandomIntergerUnder(int max){        
                  
          return (int)(max*Math.random());
              }

              
              
          /**
               * 取得max與min之間的一個隨機整數,包括min和max兩值
               * 
          @param max
               * 
          @param min
               * 
          @return
               
          */

              
          public static int getIntgerBetween(int max,int min){
                  
          int interval=max-min;        
                  
                  
          return (int)Math.round((Math.random()*interval))+min;
              }

          }

           

          posted on 2009-02-21 15:25 何楊 閱讀(417) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 顺昌县| 长宁区| 泸定县| 阿拉尔市| 南京市| 泽普县| 白玉县| 玉环县| 丹凤县| 高淳县| 东莞市| 天气| 申扎县| 西宁市| 陕西省| 彭泽县| 平定县| 温州市| 嵊州市| 英德市| 邹城市| 紫阳县| 宝鸡市| 湖南省| 嵊州市| 汽车| 海丰县| 滨州市| 兰溪市| 商洛市| 鹿邑县| 出国| 沾化县| 吴旗县| 乌海市| 内黄县| 贺兰县| 阳信县| 清远市| 麟游县| 宁武县|