Javaでさまざまな質問をするゲームを作成しています。質問はいくつかの配列リストに保存されます。私の問題は、これらの質問を繰り返さないことです。すべての質問が尋ねられた場合、プログラムは停止するはずです。私はJavaランダム関数を使用しました。しかし、それは失敗です。どんな助けでもかなりの価値があります よろしく
1474 次
2 に答える
6
私があなたの質問を正しく理解している場合は、質問をランダムな順序で表示する必要があります。この問題には簡単な解決策があります。メソッドjava.util.Collections.shuffle
を使用して、リスト内の質問をランダムに並べ替えます。そして、リストを最初から繰り返します。このアルゴリズムは線形の時間と空間の複雑さを持ちます。
于 2012-04-06T22:38:34.837 に答える
0
質問のリストを一時リストにコピーし、
while(list.size() > 0){
int i = Math.floor(Math.Random() * list.size());
list.get(i); //do something with question
list.remove(i);
}
これは、リストに要素がある限りループし、ランダムな要素を引き出してから、リストから削除します。
明確にするために編集 - これにより、重複が発生しないことが保証されます
于 2012-04-06T22:41:06.617 に答える