生成一系列隨機數是不時出現的常見任務之一。在Java中,只需使用java.util.Random類即可實現。
與使用任何API 類一樣,第一步是在程序類開始之前放入import語句:
import java.util.Random;
接下來,創建一個Random對象:
Random rand = new Random();
Random對象為您提供了一個簡單的隨機數生成器。對象的方法提供了選擇隨機數的能力。例如,nextInt()和nextLong()方法將分別返回int和long數據類型的值(負數和正數)范圍內的數字:
Random rand = new Random();for (int j=0;j < 5;j++){ System.out.printf("%12d ",rand.nextInt()); System.out.print(rand.nextLong()); System.out.println();}
返回的數字將隨機選擇int和long值:
-1531072189 -12739321190906806781849305478 60886866589834851011043154343 64619731859316770181457591513 3914920476055359941-1128970433 -7917790146686928828
從某個范圍中挑選隨機數
通常,要生成的隨機數需要來自某個范圍(例如,包括1到40之間)。為此,nextInt()方法也可以接受int參數。它表示數字范圍的上限。但是,上限數字不包括在可以選擇的數字之一中。這可能聽起來令人困惑,但nextInt()方法從零開始工作。例如:
Random rand = new Random();rand.nextInt(40);
只會從0到39中選擇一個隨機數。要從以1開頭的范圍中進行選擇,只需將1添加到nextInt()方法的結果中即可。例如,要選擇1到40之間的數字,請在結果中添加一個:
Random rand = new Random();int pickedNumber = rand.nextInt(40) + 1;
如果范圍從一個更高的數字開始,您將需要:
減去上限數字的起始編號,然后加一。
將起始編號添加到nextInt()方法的結果中。
例如,要從5到35中選擇一個數字,上限數字將為35-5 + 1 = 31,并且需要將5添加到結果中:
Random rand = new Random();int pickedNumber = rand.nextInt(31) + 5;
隨機類是多么隨機?
我應該指出,Random類以確定的方式生成隨機數。產生隨機性的算法基于稱為種子的數字。如果種子數已知,那么可以計算出將從算法中產生的數字。為了證明這一點,我將使用Neil Armstrong首次踏上月球之日的數字作為我的種子數(1969年7月20日):
import java.util.Random;public class RandomTest {; public static void main(String[] args) { Random rand = new Random(20071969); for (int j = 0; j
無論誰運行此代碼,生成的“隨機”數字序列將是:
3 0 3 0 7 9 8 2 2 5
默認情況下,使用的種子編號由:
Random rand = new Random();
是自1970年1月1日以來的當前時間(以毫秒為單位)。通常,這將為大多數目的產生足夠隨機的數字。但是,請注意,在同一毫秒內創建的兩個隨機數生成器將生成相同的隨機數。
對任何必須具有安全隨機數生成器的應用程序(例如,賭博程序)使用Random類時也要小心??梢愿鶕贸绦蜻\行的時間猜測種子數。通常,對于隨機數絕對關鍵的應用程序,最好找到Random對象的替代方案。對于大多數只需要某個隨機元素的應用程序(例如,棋盤游戲的骰子),它可以正常工作。
感謝各位的閱讀!看完上述內容,你們對Java生成隨機數的案例大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖)近日,寶尊電商有限公司(納斯達克:BZUN及港交所:9991)(以下簡稱“寶尊”)正式宣布,將以全現金交易方式收購Gap大中華區業務。目前該協議已完成簽署,股權交易對價為4000萬美元,根據收購流程及相關法律法規,交易程序將待相關部門審批后正式完成。據虎嗅消息,GAP在亞洲經歷著困境。2017年開始,GAP集團亞洲業務占比持續下滑;2020年,旗下品牌Old Na...
2010年,28歲的車曉與身家125億的山西首富李兆會結婚,婚禮花費超過5000萬。15個月后,兩人離婚。李兆會之父李海倉創建了海鑫。2002年,李海倉死于一場車禍。父親去世后,28日,22歲的李兆會成為他的繼承人。經過他的大膽改革,李兆會在2010年以125億元的資產成為山西首富。那年他才30歲。那一年,他遇到了他的妻子車曉。車曉出生在一個藝術家庭。他的爺爺是著名女明星,媽媽是王麗云,爸爸是《西...
美國次貸危機(subprime crisis)也稱次級房貸危機,也譯為次債危機。它是指一場發生在美國,因次級抵押貸款機構破產、投資基金被迫關閉、股市劇烈震蕩引起的金融風暴。那么,美國次貸危機爆發的主要原因是什么?美國次貸危機如何解決的?一起來看看吧!美國次貸危機爆發的主要原因有:1.美國金融監管當局,特別是美聯儲貨幣政策的松緊變化。2.美國投資市場,以及全球經濟和投資環境一段時期內,情緒樂觀、持續...