1

私はコードを実行し、タスク A として 1 から 100 の間の乱数を作成し、50 を超える場合に最初の値が 1 から 50 の間の 2 番目の乱数を生成するかどうかをどのように理解したか (どのように考えるか) タスク B)

タスクCとDが何であるかを説明してください..(((タスクCとDのアドバイスまたは説明を手伝ってください.

ありがとう....

仕事:

乱数を生成するプログラムを作成します。

a) +1 から 100 の範囲のランダムな整数を返すメソッドを作成します。

b) 次に、最上位の数値を指定するパラメーターを取る別のメソッドを追加します。つまり、50 を渡すと、1 から 50 までの乱数が返されます。random メソッドをテストして、機能することを確認します。

c) 別のメソッドを作成して、2 つの値 (最大値が必要な範囲の上部と下部) を渡すようにします。つまり、10 と 20 を渡すと、10 と 20 の間の乱数が返されます。

d) 次に、別のメソッドを作成して、繰り返し呼び出された場合に同じ 2 つの数値を返さないようにしますか? そのため、乱数が生成されて返されると、メソッドはその数を再度返しません。これを行うには、生成されたすべての数値を保存する必要があります。

import java.util.Random;

public class ranGen {

    public Integer random (Integer integer){
        Random rand = new Random();;
        int min=0, max=100;
        int randomNum = rand.nextInt(max - min + 1) + min;

        System.out.println(randomNum);
        return randomNum;
        }


    public void random50 (Integer integer){


        Random rand = new Random();;
        int min=0, max=50;
        int randomNum = rand.nextInt(max - min +1) + min;

        System.out.println(randomNum);
        }


    public static void main(String[] args) {
        ranGen process = new ranGen();

        if(process.random(null) > 50){
            process.random50(null);
        }

    }

}
4

2 に答える 2

0

c:

public Integer randomC(Integer min, Integer max) {
    //int min = 0, max = 0;
    ...
}

d:

public class ranGen {
    ArrayList<Integer> nums;
    ...

    public Integer randomD() {
        ...
        randomNum = rand.nextInt(max - min + 1) + min;
        while(nums.Exists(randomNum)) {
            randomNum = rand.nextInt(max - min + 1) + min;
        }
        nums.Add(randomNum);
        return randomNum;
    }
}

注:情報提供のためにここに示されているarraylistとメソッド。

于 2013-02-03T18:31:57.313 に答える
0

宿題の目的は、メソッドのパラメーターとは何かを学習させることのようです。最初のステップは、1 から 100 の範囲のランダムな整数を返すメソッドを作成することです。したがって、このメソッドにはパラメーターがありません。その署名は

public int generateRandomNumberBetween0And100()

2 番目のステップは、トップ番号を指定するパラメーターを取るメソッドを作成することです。したがって、その署名は次のようになります。

public int generateRandomNumberBetween0And(int topValue)

3 番目のステップは、パラメーターとして 2 つの値 (下と上の値) を取るメソッドを作成することです。したがって、その署名は次のようになります。

public int generateRandomNumberBetween(int bottomValue, int topValue)

最後のステップはもう少しトリッキーです。メソッドがすでに生成した値を記憶し、再度生成しないように求めます。パラメータはありません。その署名は

public int generateUniqueRandomNumber()

その実装は基本的に次のことを行う必要があります。

1. generate random number
2. if random number is in the set of already generated numbers, go to 1
3. store the generated number in the set of already generated numbers
4. return the generated number.

もちろん、生成済みの数値のセットは最初は空です。

intではなくを使用する必要があることに注意してくださいInteger。null を引数として受け入れる理由はなく、メソッドは決して null を返すべきではありません。したがって、プリミティブint型を優先する必要があります。

また、メソッドは生成された数値を出力するのではなく、出力する必要があることに注意してくださいreturn。したがってint、戻り値の型は ではなくを持つ必要がありvoidます。

また、慣例により、クラスは大文字で始まり、単語を省略しません。したがって、クラスの名前はRandomGenerator.

于 2013-02-03T18:34:46.610 に答える