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)只接受一个参数,所以改变它如下:

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

如果要生成基于范围的随机数,请使用一种解决方法,使用nextDouble()它生成介于0.0和之间的值,1.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 回答