1

飛行機の座席数を生成する Java プログラムを作成しようとしています。これまでのところ、私はこれを行うことができましたが、私の問題は、クライアントを実行するたびに生成される数値が異なることです。毎回同じにする必要があります...

何が間違っているのかわかりません。誰か助けてもらえますか?

import java.util.Random;
import java.util.Arrays;

public class Airplane {
    public static Random randomNumbers = new Random();
    public static int[] oSeatLeft = new int[10];
    public static int[] mSeatLeft = new int[10];
    public static int[] wSeatLeft = new int[10];
    public static int oSeat = 0;
    public static int mSeat = 0;
    public static int wSeat = 0;
    public static final int sCheck = 0;

    public void genWSeats() {

        int randSeatFill = 0;
        if (wSeat == 0) {
            for (int counter = 0; counter < wSeatLeft.length; counter++) {
                randSeatFill = randomNumbers.nextInt(2);
                if (randSeatFill == 1) {
                    wSeatLeft[counter] = 1;
                }
            }
            if (wSeat == 0) {
                wSeat++;
            }
        }
    }

    public int[] getWSeats() {
        System.out.println(java.util.Arrays.toString(wSeatLeft));
        return wSeatLeft;
    }
}

static int wSeatの目的は、チェッカーであると想定されています。wSeatが 0 より大きい場合、配列の数値をランダムに生成するべきではありません。ここで何がうまくいかないのか正確にはわかりません....

4

3 に答える 3

2

Randomコンストラクターをシードで使用する

public static Random randomNumbers = new Random(42);

このようにして、常に同じ乱数列が生成されます。42 は単なる例であり、任意の値を使用できます。

于 2013-04-24T04:54:59.750 に答える
1

で初期化時にシードを渡しますRandom(long seed)。これにより、生成される数値のシーケンスが常に同じであることが保証されます (疑似乱数ジェネレーターであるため)。

于 2013-04-24T04:55:22.830 に答える
1

そのコンストラクターでシードを渡すRandomと、毎回同じ数が生成されます

于 2013-04-24T04:57:36.613 に答える