大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java中生成隨機(jī)數(shù)的總結(jié)

Java中生成隨機(jī)數(shù)的總結(jié)

更新時間:2021-05-26 16:51:31 來源:動力節(jié)點 瀏覽980次

1. 利用Math類中的random方法來生成隨機(jī)數(shù)。

在Java語言中生成隨機(jī)數(shù)相對來說比較簡單,因為有一個現(xiàn)成的方法可以使用。在Math類中,Java語言提供了一個叫做random的方法。通過這個方法可以讓系統(tǒng)產(chǎn)生隨機(jī)數(shù)。不過默認(rèn)情況下,其產(chǎn)生的隨機(jī)數(shù)范圍比較小,為大于等于0到小于1的double型隨機(jī)數(shù)。雖然其隨機(jī)數(shù)產(chǎn)生的范圍比較小,不能夠滿足日常的需求。如日常工作中可能需要產(chǎn)生整數(shù)的隨機(jī)數(shù)。其實,只要對這個方法進(jìn)行一些靈活的處理,就可以獲取任意范圍的隨機(jī)數(shù)。

java中生成隨機(jī)數(shù)

如:我們可以先通過random方法生成一個隨機(jī)數(shù),然后將結(jié)果乘以10。此時產(chǎn)生的隨機(jī)數(shù)字即為大于等于0小于10的數(shù)字。然后再利用Int方法進(jìn)行轉(zhuǎn)換(它會去掉小數(shù)掉后面的數(shù)字,即只獲取整數(shù)部分,不是四舍五入)。最后即可獲取一個0到9的整數(shù)型隨機(jī)數(shù)字。其實現(xiàn)方法很簡單,就是對原有的random方法按照如下的格式進(jìn)行變型:(int)(Math.Random()*10)即可。

其實我們還可以對這個方法進(jìn)行擴(kuò)展,讓其產(chǎn)生任意范圍內(nèi)的隨機(jī)數(shù)。只需要將這個10換成n即可,如改為(int)(Math.Random()*n)。此時應(yīng)用程序就會產(chǎn)生一個大于等于0小與n之間的隨機(jī)數(shù)。如將n設(shè)置為5,那么其就會產(chǎn)生一個0到5之間的整數(shù)型的隨機(jī)數(shù)。如果將這個寫成一個帶參數(shù)的方法,那么只要用戶輸入需要生成隨機(jī)數(shù)的最大值,就可以讓這個方法來生成制定范圍的隨機(jī)數(shù)。

有時候程序員可能需要生成一個指定范圍內(nèi)的隨機(jī)偶數(shù)或者奇數(shù)。此時是否可以通過這個方法來實現(xiàn)呢?答案是肯定的。如現(xiàn)在程序要需要生成一個1-100范圍內(nèi)的偶數(shù)。此時該如何實現(xiàn)?首先,需要生成一個0到99之內(nèi)的隨機(jī)數(shù)(至于這里為什么是99,大家耐心看下去就知道原因了)。要實現(xiàn)這個需求,很簡單吧,只要通過如下語句就可以實現(xiàn):i=1+(int)(Math.Random()*100)。其中(int)(Math.Random()*99)產(chǎn)生0到99的整數(shù)型隨機(jī)數(shù)。然后再加上1就是產(chǎn)生1到100之間的隨機(jī)整數(shù)。然后將產(chǎn)生的隨機(jī)數(shù)賦值給變量i。但是此時其產(chǎn)生的隨機(jī)數(shù)即有偶數(shù),又有奇數(shù)。而現(xiàn)在程序員需要的是一個隨機(jī)的偶數(shù)。那么我們可以在后面加上一個if判斷語句。將這個隨機(jī)數(shù)除以2,如果沒有余數(shù)的話(或者余數(shù)為0)則表明這個隨機(jī)數(shù)是偶數(shù),直接返回即可。如果其返回的余數(shù)不為零,那么就表明其是奇數(shù),我們只要加上1就變?yōu)榱伺紨?shù),返回即可。注意,在上面的隨機(jī)數(shù)生成中,小編采用的范圍是0到99,然后再加上1讓其變?yōu)?到100的隨機(jī)數(shù)。最后的結(jié)果就是生成1到100之間的隨機(jī)偶數(shù)。其實,如果要范圍隨機(jī)奇數(shù)的話,只需要對上面的語句進(jìn)行稍微的修改即可。

可見雖然random方法其自身產(chǎn)生的隨機(jī)數(shù)有比較嚴(yán)格的范圍限制。但是只要對其進(jìn)行合理的轉(zhuǎn)換,程序員仍然可以采用這個方法產(chǎn)生用戶所需要的隨機(jī)數(shù)據(jù)。

2. 通過Random類來生成隨機(jī)數(shù)。

在Java語言中,除了可以通過random方法來產(chǎn)生隨機(jī)數(shù)之外,還可以通過一個Random類來產(chǎn)生隨機(jī)數(shù)。程序開發(fā)人員可以通過實例化一個Random對象來創(chuàng)建一個隨機(jī)數(shù)的生成器。如Random i=new Random()。通過這條語句就利用了Random類創(chuàng)建了一個隨機(jī)數(shù)的生成器。不過以這種方法創(chuàng)建隨機(jī)數(shù)時,與采用Random方法產(chǎn)生隨機(jī)數(shù)的機(jī)制不同。利用現(xiàn)在這種方式實例化對象時,Java編譯器會以系統(tǒng)當(dāng)前的時間作為隨機(jī)數(shù)生成器的種子。由于時間時時刻刻在變化的。若以這個時間作為生成器的種子,就可以保證生成的隨機(jī)數(shù)真的是隨機(jī)的,其生成的隨機(jī)數(shù)重復(fù)率會大大的降低。

利用這種方法其比較方便。如可以利用提供的關(guān)鍵字,讓程序返回一個隨機(jī)的整數(shù)(采用int nextInt(10))等等。不過其返回控制要比Random方法困難一點。如現(xiàn)在需要系統(tǒng)提供一個10到50之間的隨機(jī)奇數(shù),利用這個Random類就無法完成。也就是說,利用這個Random類來生成隨機(jī)數(shù),其只能夠控制上限,而不能夠控制下限。換一句話說,其可以指定最大的隨機(jī)數(shù)范圍,而不能夠指定最小的隨機(jī)數(shù)范圍。所以,在靈活性上,其比Random方法要稍微差一點。

另外利用這個方法來實現(xiàn)的話,必須先創(chuàng)建一個對象。也就是說利用Randow類來創(chuàng)建對象。這跟Randow方法不同。像上面舉的例子中,Randow方法本身就是一個math類中方法,可以直接調(diào)用,省去對象創(chuàng)建的方法。為此小編建議各位讀者與程序開發(fā)人員,最好還是使用Random方法來創(chuàng)建隨機(jī)數(shù)。只有在生成一些比較特殊的隨機(jī)數(shù)時采用Random類。如現(xiàn)在需要生成一個概率密度為高斯分布的雙精度值隨機(jī)數(shù)時,則通過采用Random類的方法來創(chuàng)建隨機(jī)數(shù)相對來說比較簡單一點。

以上就是動力節(jié)點小編介紹的"Java中生成隨機(jī)數(shù)的總結(jié)",希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為您服務(wù)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费福利视频网站 | 国产亚洲欧美日韩在线看片 | 国产一精品一aⅴ一免费 | 亚洲精品国产综合99久久一区 | 男女午夜影院 | 一级一片| 男人影院在线 | 91精品国产免费自在线观看 | 日本一级特黄毛片免费视频9 | 九九热视频精品在线观看 | 九九影院在线观看 | 久草在线视频在线观看 | 欧美一级毛片俄罗斯 | 看全色黄大色黄大片色责看的 | 黄色毛片免费 | 亚洲一级色 | 国产成 人 综合 亚洲网 | 一级片影院 | 国产一区二区精品久久91 | 日韩欧美一区二区久久黑人 | 亚洲精品免费在线观看 | 四虎海外影库www4hu | 97av视频| 日本亚洲成高清一区二区三区 | 国产成人亚洲综合网站不卡 | 美女洗澡一级毛片 | 日韩精品成人免费观看 | 日本一级做人免费视频 | 成人短视频视频在线观看网站 | aaa一级黑人毛片 | 高清国产精品入口麻豆 | 2021午夜国产精品福利 | 欧美一区二区在线 | 美女啪啪免费网站 | 女人18毛片a级毛片免费看一 | 久久er99热这里只是精品 | 免费高清在线爱做视频 | 精品久久久久久中文字幕欧美 | 国产欧美日韩第一页 | 91成人在线 | 久久狠狠第一麻豆婷婷天天 |