LALA  
          日歷
          <2015年6月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導航

          留言簿(1)

          隨筆分類(31)

          文章分類(4)

          收藏夾(21)

          搜索

          •  

          積分與排名

          • 積分 - 29910
          • 排名 - 1389

          最新隨筆

          最新評論

          閱讀排行榜

           
          比較好的生成隨機序列的算法:
           
           1 import java.util.Random;
           2 
           3 public class Utility {
           4     /**
           5      * 用0~n生成m個數的隨機序列
           6      * 
           7      * @param limit
           8      *            - n-1
           9      * @param need
          10      *            - m
          11      * @return 生成的隨機序列
          12      */
          13     public static int[] random_serial(int limit, int need) {
          14         int[] temp = new int[limit];
          15         int[] result = new int[need];
          16         for (int i = 0; i < limit; i++)
          17             temp[i] = i;
          18         int w;
          19         Random rand = new Random();
          20         for (int i = 0; i < need; i++) {
          21             w = rand.nextInt(limit - i) + i;
          22             int t = temp[i];
          23             temp[i] = temp[w];
          24             temp[w] = t;
          25             result[i] = temp[i];
          26         }
          27         return result;
          28     }
          29 
          30     /**
          31      * 對0~n進行隨機亂序排列,比如用于歌曲隨機播放。
          32      *  1、按順序用0到n填滿整個數組;
          33      *  2、隨機產生從0到n-2個數組下標,把這個下標的元素值跟n-1下標的元素值交換,
          34      *     一直進行到下標為1的元素。
          35      * 因此它只需要遍歷一次就能產生全部的隨機數。
          36      * 
          37      * @param limit
          38      *            - n-1
          39      * @return 生成的隨機序列
          40      */
          41     public static int[] random_serial(int limit) {
          42         int[] result = new int[limit];
          43         for (int i = 0; i < limit; i++)
          44             result[i] = i;
          45         int w;
          46         Random rand = new Random();
          47         for (int i = limit - 1; i > 0; i--) {
          48             w = rand.nextInt(i);
          49             int t = result[i];
          50             result[i] = result[w];
          51             result[w] = t;
          52         }
          53         return result;
          54     }
          55 }
          56 
          posted on 2008-12-23 17:32 Dest 閱讀(1832) 評論(1)  編輯  收藏 所屬分類: Java算法
           
          Copyright © Dest Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 英吉沙县| 毕节市| 四平市| 通州区| 丹巴县| 诏安县| 江源县| 灌云县| 泗洪县| 新疆| 九寨沟县| 四子王旗| 梅州市| 大兴区| 磴口县| 新安县| 界首市| 昌宁县| 年辖:市辖区| 枞阳县| 随州市| 彭州市| 福海县| 安国市| 榆社县| 通榆县| 凉山| 陈巴尔虎旗| 海林市| 肥东县| 广灵县| 尉犁县| 都匀市| 新乡市| 兰坪| 修文县| 宁晋县| 称多县| 南平市| 武功县| 调兵山市|