簡體   English   中英

在 java 中生成非重復隨機數

[英]generating non repeating random number in java

我正在制作一個游戲,它會在 java 中提出不同的問題。問題存儲在一些 arraylist 中。我的問題是這些問題不應該重復。 如果所有問題都被問到,那么程序應該停止。 我已經使用了 java 隨機 function。但它失敗了。 任何幫助將是可觀的問候

如果我正確理解你的問題,你想以隨機順序顯示問題。 這個問題有一個簡單的解決方案。 使用方法java.util.Collections.shuffle隨機排列列表中的問題。 然后從頭開始遍歷列表。 該算法具有線性時間和空間復雜度。

將問題列表復制到臨時列表,以及

while(list.size() > 0){
     int i = Math.floor(Math.Random() * list.size());
     list.get(i); //do something with question
     list.remove(i);
}

只要 list 有元素,就會循環,拉出一個隨機元素,然后將其從 list 中刪除。


編輯澄清 - 這確保你不會重復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM