国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ramdom的應用

2019-11-18 14:18:00
字體:
來源:轉載
供稿:網友

  ramdom的應用

在J2ME中,由于大部分的游戲都會涉及到隨機性的事件,Random類自然就成為J2ME程序員經常使用的一個類了。但是對于新手來說,Random類看似簡單,也有可能會出現這樣那樣的錯誤。所以在這里把我對于這個類的使專心得總結一下。

random類在CLDC1.0中就已經定義了。這個類有兩個構造函數Random() 和Random(long seed) 并且提供了四個常用方法:

next(int bits)
nextInt()
nextLong()
setSeed(long seed)

其中next(int bits)用來產生指定范圍的隨機數,即:
next(1)產生2的1次方之內的隨機數
next(2)產生2的2次方之內的隨機數
next(3)產生2的3次方之內的隨機數
...............................
next(n)產生2的n次方之內的隨機數
...............................
next(32)產生2的32次方之內的隨機數,就相當于nextInt()了
nextInt()用來產生隨機整數,最大2的32次方
nextLong()用來產生隨機長整數,最大2的64次方
setSeed(long seed) 用于設定隨機數的種子,即這里的seed。隨機數種子的用處是:一般說來,這里的Random類產生隨機數是偽隨機數,是系統采用特定的算法生成出來的,關于這一點我們可以采用一個試驗來證實。方法是new兩個Random類random1和random2。各自調用nextInt方法10次,我們可以看出,雖然各自產生的是隨機數,但是兩個Random類產生的隨機數都是一樣的。這就使得隨機數存在著漏洞。假如這樣的隨機數用在安全應用上面,就達不到預想的效果了。所以Random類提供了這個方法,以進一步提高隨機性。

在這里需要非凡為新手朋友們指出的是,我們在使用隨機數的時候,不能每次都new 一個 Random類出來,又不設定隨機數種子,因為那樣作的結果是,每次產生的隨機數都是一樣的。
將一個“錯誤”的例子寫在這里:
import java.util.Random;

import javax.microedition.midlet.*;

public class J2ME extends MIDlet {
PRivate Random random;

public J2ME() {
}

protected void startApp() throws MIDletStateChangeException {
for (int i = 0; i < 20; i++) {
random=new Random();
System.out.println(random.nextInt());
}

}

protected void pauseApp() {
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
這個例子產生的隨機數很多都是相同的。正確的做法應該是在 protected void startApp() throws MIDletStateChangeException 函數中做出如下修改
random=new Random();
for (int i = 0; i < 20; i++) {
System.out.println(random.nextInt());
}
關于Random類的總結就到這里了,相信大家都可以正確使用這個類了。呵呵,請多關照。
MSN:cuilichen@hotmail.com

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽阳县| 尼木县| 河池市| 淮安市| 东明县| 定西市| 丰镇市| 佛坪县| 伊通| 凤阳县| 鹤岗市| 徐州市| 荥阳市| 武安市| 盘锦市| 肃北| 阜康市| 田阳县| 柳江县| 肥东县| 木里| 石棉县| 句容市| 资源县| 贺州市| 普安县| 辽中县| 瑞金市| 东兴市| 黑河市| 明光市| 视频| 阿勒泰市| 连山| 明星| 灌南县| 合水县| 错那县| 历史| 靖边县| 车险|