騎豬闖天下

          J2ME隨筆,記錄成長(zhǎng)的腳步

          統(tǒng)計(jì)

          留言簿(3)

          閱讀排行榜

          評(píng)論排行榜

          [J2ME] random類 隨機(jī)數(shù) 實(shí)例

          Random類。 此類在CLDC1.0中已經(jīng)定義。


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

          2. 實(shí)例:
             Random.next(1),產(chǎn)生負(fù)“2的1次方”~“2的1次方”之間的隨機(jī)數(shù)(-2到2)  
             Random.next(2),產(chǎn)生負(fù)“2的2次方”~“2的2次方”之間的隨機(jī)數(shù)(-4到4)  
             Random.next(3),產(chǎn)生負(fù)“2的3次方”~“2的3次方”之間的隨機(jī)數(shù)(-8到8)  
             Random.next(4),產(chǎn)生負(fù)“2的4次方”~“2的4次方”之間的隨機(jī)數(shù)(-16到16)

             Random.nextInt( n ); 產(chǎn)生一個(gè) [0, n) 之間的隨機(jī)整數(shù)

             Random.nextLong();用來產(chǎn)生隨機(jī)長(zhǎng)整數(shù),最大2的64次方

             Random.setSeed(long seed); 用于設(shè)定隨機(jī)數(shù)的種子,即這里的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 是:
          把上面的隨機(jī)整數(shù) random.nextInt(),絕對(duì)值Math.abs(random.nextInt()) 后
          再來取模(即取余) ran% x, 產(chǎn)生一個(gè)[0-x]的隨機(jī)整數(shù)。

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

          解釋: 
                   取余是從0-目的數(shù)之前的數(shù)。 如 x%m, 那么結(jié)果范圍是 [0, m-1],
                   所以,取0-m之間的隨機(jī)數(shù),要 (random.nextInt()) %(m+1); 
                   因?yàn)?random.nextInt())包括負(fù)值,再取一下絕對(duì)值,所以:
                   Math.abs(random.nextInt()) %(m+1);

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

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

           

          <騎豬闖天下>

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大厂| 曲松县| 平武县| 巴彦淖尔市| 新乐市| 闸北区| 宾阳县| 监利县| 万年县| 闵行区| 墨玉县| 宜都市| 廊坊市| 深州市| 宜宾市| 罗山县| 东丽区| 嘉禾县| 崇文区| 莲花县| 邯郸县| 京山县| 读书| 石狮市| 晴隆县| 临洮县| 稷山县| 洞头县| 武冈市| 扎囊县| 灵台县| 南投市| 苏州市| 确山县| 福鼎市| 大埔县| 铁力市| 开鲁县| 神木县| 光山县| 兰坪|