0

Javaでさまざまな質問をするゲームを作成しています。質問はいくつかの配列リストに保存されます。私の問題は、これらの質問を繰り返さないことです。すべての質問が尋ねられた場合、プログラムは停止するはずです。私はJavaランダム関数を使用しました。しかし、それは失敗です。どんな助けでもかなりの価値があります よろしく

4

2 に答える 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 に答える