日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 詳解兩種解決在Java中產(chǎn)生隨機(jī)數(shù)的方法

詳解兩種解決在Java中產(chǎn)生隨機(jī)數(shù)的方法

2017-01-19 11:22:51 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

隨機(jī)數(shù)在日常的應(yīng)用和開發(fā)中經(jīng)常會見到,比如說某些系統(tǒng)會為用戶生成一個(gè)最初的初始化密碼,這就是一個(gè)隨機(jī)數(shù)。那么如何解決這個(gè)問題呢?中培偉業(yè)《Java開發(fā)最佳實(shí)踐》培訓(xùn)專家龔老師給出了自己的意見。

龔老師指出,如何生成這個(gè)隨機(jī)數(shù),不同的開發(fā)工具的方法也不一樣。在應(yīng)用中,Java是應(yīng)用最為廣泛的開發(fā)工具之一,如何在Java中產(chǎn)生隨機(jī)數(shù),也是很多開發(fā)者在初學(xué)隨機(jī)數(shù)時(shí)的一個(gè)必修課,龔老師在這里介紹了兩個(gè)辦法幫你解決如何在Java中產(chǎn)生隨機(jī)數(shù)。

一、利用random方法來生成隨機(jī)數(shù)。

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

如我們可以先通過random方法生成一個(gè)隨機(jī)數(shù),然后將結(jié)果乘以10。此時(shí)產(chǎn)生的隨機(jī)數(shù)字即為大于等于小于10的數(shù)字。然后再利用Int方法進(jìn)行轉(zhuǎn)換它會去掉小數(shù)掉后面的數(shù)字,即只獲取整數(shù)部分,不是四舍五入

最后即可獲取一個(gè)0的整數(shù)型隨機(jī)數(shù)字。其實(shí)現(xiàn)方法很簡單,就是對原有的random方法按照如下的格式進(jìn)行變型:(int)(Math.Random()*10)即可。其實(shí)我們還可以對這個(gè)方法進(jìn)行擴(kuò)展,讓其產(chǎn)生任意范圍內(nèi)的隨機(jī)數(shù)。至需要將這個(gè)10換成即可,如改為(int)(Math.Random()*n)。此時(shí)應(yīng)用程序就會產(chǎn)生一個(gè)大于等于小與之間的隨機(jī)數(shù)。如將設(shè)置為,那么其就會產(chǎn)生一個(gè)之間的整數(shù)型的隨機(jī)數(shù)。如果將這個(gè)寫成一個(gè)帶參數(shù)的方法,那么只要用戶輸入需要生成隨機(jī)數(shù)的最大值,就可以讓這個(gè)方法來生成制定范圍的隨機(jī)數(shù)。在Java中定義自己的工具庫

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

假設(shè)現(xiàn)在用戶想生成一個(gè)任意范圍內(nèi)的奇數(shù)或者偶數(shù),能夠?qū)崿F(xiàn)嗎?假設(shè)現(xiàn)在用戶想實(shí)現(xiàn)一個(gè)之間的任意偶數(shù)其中

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

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

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

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

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

借助以上兩種辦法,就可以解決如何在Java中產(chǎn)生隨機(jī)數(shù)的問題,在工作中,如果使用的是其他開發(fā)工具,解決如何在Java中產(chǎn)生隨機(jī)數(shù)的問題的方法與技巧雖然不太相同,但是基本思路可以參考這兩個(gè)例子。

標(biāo)簽: Java開發(fā)
主站蜘蛛池模板: 欧美老妇毛茸茸二毛 | 涩涩网站在线 | 日本毛片高清免费视频 | 国内精品国产三级国产在线专 | 亚洲人www | h成人在线 | 蜜臀久久久| 中文亚洲AV片在线观看无码 | 果冻传媒剧国产免费入口今日更新 | www.久久国产| 一本一本久久a久久精品综合 | 欧美xxxx色视频在线观看 | 少妇xxxxx性开放 | 91国内在线观看 | 无码国产精品久久一区免费 | 国产精品无码无片在线观看 | 奇米影视777在线观看 | 狠狠操天天干 | 国产乱码卡一卡2卡三卡四 国产香蕉一区二区三区在线视频 | 91深夜福利视频 | 欧美精品一区二 | 亚洲九一 | 日韩艹逼视频 | 精品五夜婷香蕉国产线看观看 | 一级毛片一级毛片一级毛片 | 小少妇的粉嫩小泬 | 一级日b片 | 91黄色看片| 蜜国产精品JK白丝AV网站 | 欧美一级片免费播放 | 国产三级午夜理伦三级连载时间 | 久久精品色欧美aⅴ一区二区 | 日韩av大片在线 | FREE性欧美人与DOOG | 国产午夜理论不卡在线观看 | 国产精品久久久久久久毛片明星 | 热热色网站 | 女人高潮叫床三级视频 | 日韩av高清在线 | 亚欧在线观看视频 | 99香蕉国产精品偷在线观看 |