2017-06-12 191 views
-3

我想在1到50之間生成20個隨機數,不需要重複數字並存儲到數組中。生成沒有重複的隨機數

例如,如果按鈕點擊一個隨機數產生像5它存儲在數組然後再次點擊按鈕和一個更多的隨機數產生,如果該隨機數在數組中可用然後生成另一個匹配數組,如果隨機數不存在然後存儲在Array中。

我想要一些簡單的代碼,一些代碼可以在這個網站,但我不明白這些代碼。我正在使用Java 8和eclipse Oxygen。

我使用這個簡單的代碼生成隨機數

Random rand=new Random(); 
    i=1; 
    i=1+rand.nextInt(8); 
+3

「我想一些簡單的代碼,一些代碼都可以在這個網站,但我不明白這些代碼。」那麼爲什麼不鏈接到相關問題,並提供有關您在該代碼中不理解的細節?再次問同樣的問題沒有意義 - 你可能會得到相同類型的代碼,但你仍然不明白,浪費了人們回答的時間...... –

+0

Stackoverflow是爲問題提供解決方案,它不是一個代碼寫入服務。如果你想要一些簡單的代碼,請僱人爲你寫。我每小時收費80歐元。 –

+0

但我現在不可用。 –

回答

2

您可以通過產生越來越多的數組,然後洗牌它生成沒有重複的隨機數。

0

您可能會生成一個隨機數,將其存儲到一個數組中並檢查每個新數字是否與該數組相對應。這可能會減慢你的過程。

只要具有50個整數的數組不會填滿所有內存,就可以創建1到50的整數,然後刪除(或創建一個沒有的數組),隨機選擇數組元素。它不會提供良好的性能,但似乎這並不重要。

-2

嘗試somenthing這樣的:

private List<Integer> numbers = new ArrayList<Integer>(); 

private Integer generate() { 
    Random rand = new Random(); 
    int aux; 
    do { 
     aux = rand.nextInt(49) + 1; // Random numbers in between 1 and 50 
    } while (numbers.contains(aux)); // Prevents duplication 
    return aux; 
} 

public void btnClick() { 
    if (numbers.size() < 20) { // Limits to 20 numbers 
     numbers.add(generate()); // Store in an list 
    } 
}