騎豬闖天下

          J2ME隨筆,記錄成長的腳步

          統計

          留言簿(3)

          閱讀排行榜

          評論排行榜

          [J2ME] random類 隨機數 實例

          Random類。 此類在CLDC1.0中已經定義。


          1. 這個類有兩個構造函數Random() 和Random(long seed) 并且提供了四個常用方法:
             next (int bits)
             nextInt ()
             nextLong ()
             setSeed (long seed)

          2. 實例:
             Random.next(1),產生負“2的1次方”~“2的1次方”之間的隨機數(-2到2)  
             Random.next(2),產生負“2的2次方”~“2的2次方”之間的隨機數(-4到4)  
             Random.next(3),產生負“2的3次方”~“2的3次方”之間的隨機數(-8到8)  
             Random.next(4),產生負“2的4次方”~“2的4次方”之間的隨機數(-16到16)

             Random.nextInt( n ); 產生一個 [0, n) 之間的隨機整數

             Random.nextLong();用來產生隨機長整數,最大2的64次方

             Random.setSeed(long seed); 用于設定隨機數的種子,即這里的seed

          3. 代碼解析:

              public static int getRandom(int min,int max)
                  
          int ran=Math.abs(random.nextInt()); 
                  
          int returnRan=ran%(max-min+1)+min; 
                  
          return returnRan; 
              }

          代碼中 int returnRan=ran%(max-min+1)+min 是:
          把上面的隨機整數 random.nextInt(),絕對值Math.abs(random.nextInt()) 后
          再來取模(即取余) ran% x, 產生一個[0-x]的隨機整數。

          打個比方: ran = 100;
          但是我要的隨機數是在3-10之間的,那么上面就會是
          int returnRan=ran%8+3 ;
          即:int returnRan=ran%(10-3+1)+3

          解釋: 
                   取余是從0-目的數之前的數。 如 x%m, 那么結果范圍是 [0, m-1],
                   所以,取0-m之間的隨機數,要 (random.nextInt()) %(m+1); 
                   因為(random.nextInt())包括負值,再取一下絕對值,所以:
                   Math.abs(random.nextInt()) %(m+1);

          例子:
          int ran=Math.abs(random.nextInt());

          1, 取0-3之間的隨機整數:ran%4 = ran%(3+1);
          2, 取4-9之間的隨機整數:ran%6+4 = ran%(9-4+1)+4;  即,先產生0-5之間的隨機數,然后再加4;

           

          <騎豬闖天下>

          posted on 2008-08-28 16:30 騎豬闖天下 閱讀(1391) 評論(0)  編輯  收藏


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


          網站導航:
           
          主站蜘蛛池模板: 莱州市| 郎溪县| 崇阳县| 旬邑县| 通江县| 山东省| 韩城市| 稷山县| 将乐县| 德庆县| 新野县| 岳阳市| 夏津县| 辉县市| 彭泽县| 青阳县| 新昌县| 江西省| 洛阳市| 浮山县| 天全县| 浦城县| 互助| 青川县| 额济纳旗| 沁水县| 兴义市| 镶黄旗| 岳阳县| 延长县| 伊春市| 威海市| 六盘水市| 仪征市| 汤阴县| 自贡市| 武定县| 安徽省| 庆云县| 桐柏县| 濉溪县|