posts - 2, comments - 0, trackbacks - 0, articles - 1

          生成不重復的隨機數字

          Posted on 2011-10-29 23:27 應該干點什么 閱讀(205) 評論(0)  編輯  收藏
          問題描述:生成一個長度為5的數組,該數組中包含[1,10]之間的數字,且每個數組中的元素都不重復。
          實現思路:首先初始化一個長度為10的數組A,該數組中的數字依次為1~10,然后實現一個循環次數為5的循環,第一次生成一個[0,9]之間的隨機數作為數組標,將該數字賦值到結果數組B中的第一個元素,并將A數組中隨機下標的元素和數組A中的第一個元素交換;有效數字減少1,;第二次生成一個[0,8]之間的隨機數字作為下標。將該數組值賦值到數組B中的第二個元素,依次類推。

          注:Math.random()生成一個[0,1)之間的隨機小數

          實現的代碼如下:
          public class norand {

              
          public static void main(String[] args) {
                  
          int [] a=new int[10];     //原始數據數組
                  int []b=new int[5];       //結果數據數組
                  int index;    //隨機下標
                  int left=10;    // 剩余元素個數
                  int temp;     //   臨時數據
                  
          //初始化原始數組
                  for(int i=0;i<a.length;i++){
                      a[i]
          =i+1;
                  }

                  
          //隨機元素
                  for(int i=0;i<b.length;i++){
                      index
          =(int) (Math.random()*left); // 隨機下標
                      b[i]=a[index];    //存儲結果數據
                      
          //交換數據
                      temp=a[index];  
                      a[index]
          =a[left-1];
                      a[left
          -1]=temp;
                      
          //有效數據減少1
                      left--;
                  }

                  
          //輸出結果  
                  for(int i=0;i<b.length;i++){
                      System.out.println(b[i]);
                  }

                      

              }


          }




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


          網站導航:
           
          主站蜘蛛池模板: 札达县| 府谷县| 郁南县| 中牟县| 广东省| 神农架林区| 泾源县| 堆龙德庆县| 浏阳市| 定边县| 江城| 怀安县| 南澳县| 周口市| 从江县| 彭山县| 昌邑市| 厦门市| 安达市| 中阳县| 平陆县| 育儿| 永寿县| 连城县| 新闻| 永川市| 岱山县| 班戈县| 五常市| 东安县| 沽源县| 武平县| 来宾市| 中西区| 邵阳市| 安国市| 额济纳旗| 金山区| 太和县| 平阳县| 和龙市|