在java中生成几个随机双数

时间:2015-05-04 08:56:39

标签: java math random double coordinates

每当我尝试以这种方式生成城市的随机坐标时,

public City () {                    
        super();
        this.x = Math.random()*200;
        this.y = Math.random()*200;
    }

我得到X和Y的相同值,这意味着所有城市都在地图上的同一行。我的问题是如何避免这种情况?如何创建不同的坐标?感谢。

4 个答案:

答案 0 :(得分:2)

我假设这样的课程:

class City {
  private double x;
  private double y;

  public City() {
    super();
    this.x = Math.random() * 200;
    this.y = Math.random() * 200;
  }

  @Override
  public String toString() {
    return "City [x=" + x + ", y=" + y + "]";
  }
}

当我创建新的City对象时,我得到(正如Math API应该预期的)不同的值:

City [x=10.552289272723247, y=28.548756787475504]
City [x=58.96588997141927, y=146.87205149574288]
City [x=186.69728798772306, y=179.3787764147533]

不要误解我的意思 - 也许是在你错误地检查你使用的值两次的时候?

答案 1 :(得分:1)

要获得不同的double值,请使用java.util.Random类。下面是一个例子,它打印出四个不同的双值:

   java.util.Random random = new java.util.Random();

    System.out.println(random.nextDouble());
    System.out.println(random.nextDouble());
    System.out.println(random.nextDouble());
    System.out.println(random.nextDouble());

答案 2 :(得分:1)

使用java.util.Random。 例如:

Random random = new Random();
int x = random.nextInt(11); // from 0 to 10
double y = random.nextDouble(); // from 0 to 1

答案 3 :(得分:0)

你必须做错其他的问题。

public static void main(String[] args) {
        double x = Math.random() * 200;
        double y = Math.random() * 200;
        System.out.println(x + ":"+y);
}

考虑上面的代码捕捉,你会得到不同的x和y值..!

请确保每次创建城市对象时都使用关键字。