我有一個程序生成一個介於1和n之間的隨機數。讓JAVA程序記住生成的隨機數
假設N = 6
我讓程序產生7個號碼,並得到如下: 3,4,3,1,2,3,6
我怎樣才能讓程序店鋪產生的數字 AND 每個數字已生成多少次。答案是這樣的:
3出現了3次。
4出現了1次。
1出現了1次。
6來了2次。
我有一個程序生成一個介於1和n之間的隨機數。讓JAVA程序記住生成的隨機數
假設N = 6
我讓程序產生7個號碼,並得到如下: 3,4,3,1,2,3,6
我怎樣才能讓程序店鋪產生的數字 AND 每個數字已生成多少次。答案是這樣的:
3出現了3次。
4出現了1次。
1出現了1次。
6來了2次。
儲存在地圖中的每個數字:
Map<Integer, Integer> numberCounts = new HashMap<>();
int n = 7;
int limit = 100;
Map<Integer, Integer> numberCounts = new HashMap<>();
Random random = new Random();
for (int i = 0 ; i < n; i++) {
int randNum = random.nextInt(limit);
Integer count = numberCounts.get(randNum);
if (count == null) {
count = Integer.valueOf(1);
} else {
count = count.intValue() + 1;
}
numberCounts.put(randNum, count);
}
for (Map.Entry<Integer, Integer> entry : numberCounts.entrySet()) {
System.out.println(entry.getKey() + " came up "
+ entry.getValue() + ((entry.getValue() > 1) ? " times" : " time"));
}
謝謝你的幫助!我會去看看這個方法。我是一個新手,並沒有採取這個過程中。 – user3610473
這有助於很多!我已經通過你的編碼完成了我的程序。但是,我仍然需要弄清楚如何提出lase for循環。再次感謝! – user3610473
對於循環來說,「lase」是什麼意思? – CoderDre
int one=0;
int two=0;
int three=0;
int four=0;
int five=0;
int six=0;
int myRandomNumber = yourRandomizerMethod();
switch (myRandomNumber) {
case 1: one++;
break;
case 2: two++;
break;
case 3: three++;
break;
case 4: four++;
break;
case 5: five++;
break;
case 6: six++;
break;
}
有沒有聽說過一個數組? – pamphlet
問題是我不知道用戶將重複該過程的次數或n值(最大數)是多少。 – user3610473
你可以使用一個哈希表。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
當生成你的隨機數,如果它在你以前的數字地圖,如果它不是,那麼你加它,它如果它在你的地圖關聯爲1,那麼你增加計數您可以檢查。
Integer n = map.get(generatedRandomNumber);
if(n == null) {
n = new Integer(1);
} else {
n = n.add(1);
}
map.put(generatedRandom, n);
感謝您分享您的想法!順便說一下,如果我現在沒有生成數字,最大數量和重複過程的次數,我可以使用散列圖嗎? – user3610473
當然,只要它們是Integer類型的對象並且不爲null,那麼對於作爲HashMap中鍵的值沒有限制。 – cjungel
我怎樣才能讓生成的程序商店的數量和多少 次,每次數量已經產生?
我不應該給你直接的程序。
想想下面。
Counter
和Value
於是找到一些關於Collection Framework
Iterate
您存儲。Counter=1
。現在該爲此使用什麼。
你可能會發現CollectionFrameWork教程有趣的開始。
你是什麼意思**記憶**? – azurefrog
歡迎來到SO。請閱讀[FAQ]和[Ask]。您需要自己嘗試解決家庭作業問題,並顯示您在尋求幫助之前所做的工作。這不是一個「爲我做作業」的網站。如果你不知道從哪裏開始,你應該和你的老師交談。 –
你真的需要付出一些努力。這是微不足道的,不應該被問到這裏,更不用說回答了! – John3136