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

          真正的快樂來源于創造

            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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 涞源县| 林甸县| 长葛市| 双峰县| 仙居县| 咸阳市| 平原县| 独山县| 叶城县| 多伦县| 杭锦后旗| 隆昌县| 大关县| 巩留县| 中西区| 庐江县| 汤原县| 景宁| 个旧市| 塔城市| 永兴县| 虹口区| 铜川市| 巢湖市| 南开区| 剑川县| 东山县| 金沙县| 新建县| 民丰县| 濮阳市| 蒙自县| 巴彦淖尔市| 凤山县| 深泽县| 泰兴市| 夏邑县| 若尔盖县| 论坛| 耿马| 综艺|