0

長さ10の配列があります:

Population = {1,3,4,2,7,-2,0,8,9,5}.

0 から 9 までの 2 つの乱数 (たとえば 4 と 6) を生成します。次に、4 番目と 6 番目の要素 (7, 0) をチェックし、「勝者」はより大きい数です。したがって、7 が勝者配列に入ります (合計で 5 勝者):

Winners = {7, ...}

残りの 2 つの数字 (敗者を含む) をペアにして、勝者を Winners 配列に入れたいと思うたびに。

これを行う最も簡単な方法は、サイズ n の非固定サイズ配列を使用し、「population」から勝者を削除して「winners」に入れることです。次に、1 から n-1 までの 2 つの乱数を生成して、プロセスを続行できます。

Javaで固定サイズの配列を使用してこれを行うにはどうすればよいですか? 「勝者」の数字を無視して、配列から 2 つの数字を選択するにはどうすればよいですか?

4

4 に答える 4

0

勝者配列の開始位置を示すインデックスを保持します (配列を再利用すると仮定します)。最初は n になります。次に、Random.nextInt(startOfWinners) で 2 つの乱数を取得し、勝者を n-1 と交換して繰り返します。

于 2015-02-04T16:59:19.803 に答える