2014-05-07 92 views
-3

我有一個程序生成一個介於1和n之間的隨機數。讓JAVA程序記住生成的隨機數

假設N = 6

我讓程序產生7個號碼,並得到如下: 3,4,3,1,2,3,6

我怎樣才能讓程序店鋪產生的數字 AND 每個數字已生成多少次。答案是這樣的:

3出現了3次。

4出現了1次。

1出現了1次。

6來了2次。

+1

你是什麼意思**記憶**? – azurefrog

+0

歡迎來到SO。請閱讀[FAQ]和[Ask]。您需要自己嘗試解決家庭作業問題,並顯示您在尋求幫助之前所做的工作。這不是一個「爲我做作業」的網站。如果你不知道從哪裏開始,你應該和你的老師交談。 –

+0

你真的需要付出一些努力。這是微不足道的,不應該被問到這裏,更不用說回答了! – John3136

回答

0

儲存在地圖中的每個數字:

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")); 
    } 
+0

謝謝你的幫助!我會去看看這個方法。我是一個新手,並沒有採取這個過程中。 – user3610473

+0

這有助於很多!我已經通過你的編碼完成了我的程序。但是,我仍然需要弄清楚如何提出lase for循環。再次感謝! – user3610473

+0

對於循環來說,「lase」是什麼意思? – CoderDre

1
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; 
    } 
+0

有沒有聽說過一個數組? – pamphlet

+0

問題是我不知道用戶將重複該過程的次數或n值(最大數)是多少。 – user3610473

0

你可以使用一個哈希表。

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); 
+0

感謝您分享您的想法!順便說一下,如果我現在沒有生成數字,最大數量和重複過程的次數,我可以使用散列圖嗎? – user3610473

+0

當然,只要它們是Integer類型的對象並且不爲null,那麼對於作爲HashMap中鍵的值沒有限制。 – cjungel

1

我怎樣才能讓生成的程序商店的數量和多少 次,每次數量已經產生?

我不應該給你直接的程序。

想想下面。

  • Java是所有關於OOP
  • 您需要存儲CounterValue於是找到一些關於Collection Framework
  • 您可以通過內容必須Iterate您存儲。
  • 找到後,如果數量存在增量計數器,如果不添加新的Counter=1

現在該爲此使用什麼。

你可能會發現CollectionFrameWork教程有趣的開始。