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

          真正的快樂來源于創造

            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 DoubleColorBall{
              
          public static void main(String[] args){
                  
          int[] ballNumbers=getSevenNumbers();
                  
                  
          for(int i:ballNumbers){
                      System.out.print(i
          +",");
                  }

              }

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

              
          public static int[] getSevenNumbers(){
                  
          final int arrLength=7;
                  
          int[] arr=new int[arrLength];
                  
                  
          // 前六個從1-33中選取,如有重復再取一次
                  do{
                      
          for(int i=0;i<=arrLength-2;i++){
                          arr[i]
          =getIntgerBetween(33,1);
                      }

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

              
              
          /**
               * 位圖法判斷整形數組是否存在重復
               * 
          @param arr
               * 
          @return
               
          */

              
          public static boolean hasDuplicatedItem(int[] arr){
                  
          // 找出數組中最大值
                  int max=arr[0];
                  
          int min=max;
                  
          for(int i:arr){
                      
          if(max<i){
                          max
          =i;
                      }

                      
          if(min>i){
                          min
          =i;
                      }

                  }

                  
                  
          int[] newArr=new int[max-min+1];
                  
          for(int i:arr){
                      
          int index=i-min;
                      
                      
          if(newArr[index]==0){
                          
          // 以前未在此位置存值
                          newArr[index]=1;
                      }

                      
          else{
                          
          // 以前已經在此位置存值
                          return true;
                      }

                  }
              
                  
                  
          return false;
              }


              
              
          /**
               * 取得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 07:23 何楊 閱讀(299) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 呼伦贝尔市| 安远县| 哈密市| 临沂市| 任丘市| 衢州市| 南开区| 太和县| 邓州市| 沈阳市| 绥芬河市| 广丰县| 广西| 井陉县| 邢台市| 河间市| 斗六市| 竹北市| 朔州市| 彩票| 鄂托克旗| 印江| 神池县| 花莲市| 桃源县| 鱼台县| 鄂托克旗| 平塘县| 浦东新区| 屯门区| 临邑县| 敖汉旗| 万载县| 黔东| 漳浦县| 贵南县| 尚志市| 徐州市| 永州市| 会同县| 五华县|