日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
淺談在Java中產(chǎn)生隨機(jī)數(shù)的兩個(gè)重要方法

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

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),前鋒企業(yè)網(wǎng)站建設(shè),前鋒品牌網(wǎng)站建設(shè),網(wǎng)站定制,前鋒網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,前鋒網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

如我們可以先通過(guò)random方法生成一個(gè)隨機(jī)數(shù),然后將結(jié)果乘以10。此時(shí)產(chǎn)生的隨機(jī)數(shù)字即為大于等于0小于10的數(shù)字。然后再利用Int方法進(jìn)行轉(zhuǎn)換(它會(huì)去掉小數(shù)掉后面的數(shù)字,即只獲取整數(shù)部分,不是四舍五入)。最后即可獲取一個(gè)0到9的整數(shù)型隨機(jī)數(shù)字。其實(shí)現(xiàn)方法很簡(jiǎn)單,就是對(duì)原有的random方法按照如下的格式進(jìn)行變型:(int)(Math.Random()*10)即可。其實(shí)我們還可以對(duì)這個(gè)方法進(jìn)行擴(kuò)展,讓其產(chǎn)生任意范圍內(nèi)的隨機(jī)數(shù)。至需要將這個(gè)10換成n即可,如改為(int)(Math.Random()*n)。此時(shí)應(yīng)用程序就會(huì)產(chǎn)生一個(gè)大于等于0小與n之間的隨機(jī)數(shù)。如將n設(shè)置為5,那么其就會(huì)產(chǎn)生一個(gè)0到5之間的整數(shù)型的隨機(jī)數(shù)。如果將這個(gè)寫(xiě)成一個(gè)帶參數(shù)的方法,那么只要用戶輸入需要生成隨機(jī)數(shù)的最大值,就可以讓這個(gè)方法來(lái)生成制定范圍的隨機(jī)數(shù)。在Java中定義自己的工具庫(kù)

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

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

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

二、通過(guò)Random類(lèi)來(lái)生成隨機(jī)數(shù)。

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

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

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

三、產(chǎn)生隨機(jī)的字符。

上面介紹的兩種方法,產(chǎn)生的都是隨機(jī)的數(shù)值型數(shù)據(jù)。但是有時(shí)候用戶可能還需要產(chǎn)生隨機(jī)的字符。其實(shí)也可以利用random方法來(lái)產(chǎn)生隨機(jī)字符。如可以利用代碼生成一個(gè)隨機(jī)的小寫(xiě)字符:(char)(‘a(chǎn)’+Math.random()*(‘z’-‘a(chǎn)’+1))。其實(shí)這跟生成任意兩個(gè)數(shù)之間的隨機(jī)數(shù)類(lèi)似。通過(guò)以上的代碼就可以生成一個(gè)范圍之內(nèi)的任意隨機(jī)字符。通過(guò)對(duì)這個(gè)代碼進(jìn)行適當(dāng)?shù)男拚€可以生成任意兩個(gè)字符之間的隨機(jī)字符與任意大寫(xiě)字符的隨機(jī)字符。其轉(zhuǎn)換的方式跟上面提到的任意范圍之內(nèi)的隨機(jī)數(shù)類(lèi)似。各位讀者若感興趣的話,可以自己進(jìn)行測(cè)試一下。師傅領(lǐng)進(jìn)門(mén),修行在自身。如果筆者在這里一股腦兒將所有的答案告訴大家,大家的印象不會(huì)很深。大家若回去自己動(dòng)手試試看,反而更容易記住。

筆者在這里給大家一個(gè)提示,只需要根據(jù)m+(int)(Math.Random()*(n-m))這條語(yǔ)句來(lái)調(diào)整(char)(‘a(chǎn)’+Math.random()*(‘z’-‘a(chǎn)’+1))這個(gè)代碼即可。

最后筆者需要強(qiáng)調(diào)的一點(diǎn)就是在用戶傳入?yún)?shù)的時(shí)候,最好要對(duì)用戶傳入的參數(shù)進(jìn)行合法性檢查。以免用戶傳入的參數(shù)不符合既定的要求,如參數(shù)需要的是數(shù)值型的數(shù)據(jù)而傳入的卻是字符型的數(shù)據(jù),而導(dǎo)致程序運(yùn)行出錯(cuò)。


分享文章:淺談在Java中產(chǎn)生隨機(jī)數(shù)的兩個(gè)重要方法
新聞來(lái)源:http://www.dlmjj.cn/article/djgidog.html