點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第十章匯總
10.9 生成隨機(jī)數(shù)
我們己經(jīng)使用了Random類,讓我們研究的更仔細(xì)些。Random類能使你創(chuàng)建多樣的互相獨(dú)立的隨機(jī)數(shù)發(fā)生器。這個(gè)類的每個(gè)對(duì)象是一個(gè)隨機(jī)數(shù)發(fā)生器,任何Random對(duì)象可以生成int、long、float或double類型的偽隨機(jī)數(shù)。通過(guò)一個(gè)算法使用一個(gè)"種子"和由此生長(zhǎng)一系列數(shù)字來(lái)創(chuàng)建這些數(shù)。使用相同的種子對(duì)這個(gè)算法初始化會(huì)產(chǎn)生相同的序列,因?yàn)樗惴ㄊ谴_定性的。
生成的整數(shù)值被均勻地分布在整數(shù)類型的范圍內(nèi)L浮點(diǎn)數(shù)值被限定在兩種類型中0.0到l,0的范圍內(nèi)。你也可以用一個(gè)高斯(即均勻)分布生成double類型的數(shù),該分布的均值為0,0,標(biāo)準(zhǔn)偏差為l,0這是一個(gè)典型的鐘形曲線代表許多隨機(jī)事件分布的可能性。
Random對(duì)象有兩個(gè)構(gòu)造函數(shù)。默認(rèn)的構(gòu)造函數(shù)從你的計(jì)算機(jī)時(shí)鐘取得的當(dāng)前時(shí)間作種子值生成偽隨機(jī)數(shù)創(chuàng)建一個(gè)對(duì)象。另一個(gè)構(gòu)造函數(shù)接受一個(gè)long類型的自變量作種子。
Random lottery =new Random (); //Swquen not repeasable
Random repeatable=new Random (997L) //Repear\table sequence
你如果使用默認(rèn)的構(gòu)造函數(shù),同一個(gè)程序每次運(yùn)行生成的隨機(jī)數(shù)序列都會(huì)不同,要提防在同一個(gè)構(gòu)造函數(shù)中創(chuàng)建2個(gè)生成器。解決問(wèn)題花費(fèi)的時(shí)間是一毫秒,因此如果在前邊的語(yǔ)句中建立了兩個(gè)對(duì)象,通常這兩個(gè)對(duì)象會(huì)生成相同的序列,因?yàn)槭褂瞄_(kāi)始的種子值的次數(shù)是相同的。用同一種子創(chuàng)建的Random對(duì)象總產(chǎn)生相同的序列,當(dāng)你測(cè)試程序時(shí)對(duì)這一點(diǎn)非常重要測(cè)試一個(gè)輸出不重復(fù)的程序是一個(gè)挑戰(zhàn)尸Java中用一個(gè)給定的種子建立的隨機(jī)數(shù)生成器的一個(gè)主要特點(diǎn)是從一個(gè)給定的種子不僅總產(chǎn)生同一個(gè)偽隨機(jī)數(shù)序列,而且在不同計(jì)算機(jī)上也是這樣。
相關(guān)推薦:
2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |