0

ランダムクラスでパラメータを作成するにはどうすればよいですか?私はこれを行いますが、エラーメッセージを送信します。

import java.util.Random;

public class DiceSimulation { 
    public static void main(String[] args)
    {
          final int NUMBER = 10000;

         Random generator = new Random();

         int die1Value; int die2Value; int count = 0; int snakeEyes = 0; 
         int twos = 0; int threes = 0; int fours = 0; int fives = 0; 
         int sixes = 0;

         while (count < NUMBER) {

              die1Value = generator.nextInt(1, 6); 
              die2Value = generator.nextInt(1, 6);

              if (die1Value == die2Value)   { 
                    if(die1Value == 1) { snakeEyes++; } 
                    else if (die1Value == 2) { twos++; } 
                    else if (die1Value == 3) { threes++; } 
                    else if (die1Value == 4) { fours++; } 
                    else if (die1Value == 5) { fives++; } 
                    else if (die1Value == 6) { sixes++; }

              }     
              count++; 
         }
4

2 に答える 2

4

構文が正しくありません。読んでくださいJava Doc。以下のようにメソッドを書くことができます。

 public static int generateBetween(int number, int max) {
    Random random = new Random();
    int generated = random.nextInt(max - number);//<--Between so Max -Number
    return generated+number;//<--Add here number so that it will be between
}
于 2012-10-31T18:53:16.767 に答える
1

この構文は間違っています:

  die1Value = generator.nextInt(1, 6); 
  die2Value = generator.nextInt(1, 6);

nextInt(int)パラメータは 1 つしか受け付けないため、次のように変更します。

  die1Value = generator.nextInt(7); //This will generate int between 0 & 6
  die2Value = generator.nextInt(7); //This will generate int between 0 & 6

範囲ベースのランダムを生成する場合は、以下のとnextDouble()の間の値を生成する回避策を使用してください。0.01.0

die1Value= 1+ (int)(generator.nextDouble()*5);//This will generate int between 1&6
die2Value= 1+ (int)(generator.nextDouble()*5);//This will generate int between 1&6 

構文:

  die1Value = min+ (int)(generator.nextDouble()*(max-min));
  die2Value = min+ (int)(generator.nextDouble()*(max-min));
于 2012-10-31T18:54:00.260 に答える