欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > 詳解兩種解決在Java中產生隨機數的方法

詳解兩種解決在Java中產生隨機數的方法

2017-01-19 11:22:51 | 來源:中培企業IT培訓網

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

龔老師指出,如何生成這個隨機數,不同的開發工具的方法也不一樣。在應用中,Java是應用最為廣泛的開發工具之一,如何在Java中產生隨機數,也是很多開發者在初學隨機數時的一個必修課,龔老師在這里介紹了兩個辦法幫你解決如何在Java中產生隨機數。

一、利用random方法來生成隨機數。

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

如我們可以先通過random方法生成一個隨機數,然后將結果乘以10。此時產生的隨機數字即為大于等于小于10的數字。然后再利用Int方法進行轉換它會去掉小數掉后面的數字,即只獲取整數部分,不是四舍五入

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

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

假設現在用戶想生成一個任意范圍內的奇數或者偶數,能夠實現嗎?假設現在用戶想實現一個之間的任意偶數其中

可見雖然random方法其自身產生的隨機數有比較嚴格的范圍限制。但是只要對其進行合理的轉換,程序員仍然可以采用這個方法產生用戶所需要的隨機數據。

二、通過Random類來生成隨機數。

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

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

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

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

標簽: Java開發
主站蜘蛛池模板: 两个人看的www中文在线观看 | 亚洲精品TV久久久久久久久久 | 人人妻人人澡人人爽欧美精品 | 巨熟乳波霸若妻在线播放 | 中文字幕区一区二区三 | 日本女人b | 精品日产一卡2卡三卡4卡自拍 | 欧美乱码卡一卡二卡四卡免费 | 午夜性生大片免费观看 | 白丝女仆被主人调教喷水蜜臀 | 麻豆亚洲高清无矿砖码区 | 精品人人妻人人澡人人爽人人 | 两性色午夜视频免费老司机 | 免费一级在线视频 | 日本丰满熟妇无码惨叫 | 午夜免费观看福利片 | 日本极品少妇videossexhd gogogo免费视频观看 | 久久青青草原亚洲AV无码麻豆 | 中国一级黄色 | 四虎永久在线精品免费播放 | 级R片内射在线视频播放 | 亚洲av伊人久久青青草原 | 亚洲熟妇av一区二区三区浪潮 | 又大又粗又爽又黄的少妇 | 亚洲精品成人AV观看 | 色综合天天综合网国产成人网 | 国产亚洲日韩在线播放更多 | 野草乱码一二三四区别 | 亚洲国产精品一区二区久久亚洲午夜 | yy8840私人影院的在线 | 欧美三级欧美成人高清 | 人妻少妇不满足中文字幕 | 少妇中文字幕乱码亚洲影视 | 乱系列人妻晓红 | 亚洲AV成人无码网站18禁在线播放 | 免费无码黄动漫在线观看 | 日本丰满妇人成熟免费中文字幕 | 欧美熟妇精品一区二区三区 | 欧美日韩中文字幕一区 | 无码韩国三级理论在线观看 | 亚洲综合色噜噜狠狠网站超清 |