2017-05-27 97 views
-1

我試圖在單擊按鈕時生成一個隨機數。但是,當我這樣做時,我有時會得到相同的數字。當我點擊按鈕時,它也會隱藏標籤。當我點擊按鈕時,應該沒有標籤。 Image防止隨機數多生成一次

private static Random rnd = new Random(); 
randomNumber = rnd.Next(0, 25); 

我怎麼能阻止它使用相同數量多於一次,直到程序關閉/重新啓動?

+3

隨機數字是隨機的。如果你要求一個隨機數字五次,完全可能會重複一次。如果你限制他們只出現一次,他們不再是隨機的。你究竟想要做什麼? –

+0

@ Ken-White當我點擊一個按鈕時,我希望它隨機選擇一個標籤。我已經看到它有可能從數組中生成一個隨機數,然後通過檢查它是否以前被使用來防止再次選擇它。我只是不知道如何做到這一點。 – TitanBuilder1

+2

我問的是爲什麼你想要一個隨機數,當你想它不是隨機的。如果你要求10個人選擇1到10之間的數字,那麼他們中有多人會選擇相同數字的機會相當不錯,這是隨機的。如果你不希望它是隨機的,那麼填充一個數組,從數組中選擇選項並將它們標記爲已使用,並拒絕不可用的數字,但不要將它們稱爲隨機數。它們是一系列限於單次使用的數字,但決不是*隨機*。 –

回答

0

按照定義,如果你做你想做的事,那麼產生的數字將會停止隨機。

因此,作爲你想得到任何重複的東西,你應該在你選擇的時間間隔中列出數字,隨機播放它們,然後一次抓取一個。

有效的方法是在here中描述的方法。這使用Fisher-Yates algorithm來洗牌你的情況將是int s。