代码之家  ›  专栏  ›  技术社区  ›  Nick Green

在Java中随机生成1到1的故障[关闭]

  •  -1
  • Nick Green  · 技术社区  · 7 年前

    我想知道如何最好地生成一个介于-1和1之间的随机数。我以为这是下面的公式,但我的输出总是0和1,没有负数。

    random.nextInt(max + 1 - min) + min
    

    这是实际代码:

    int xRand = random.nextInt((1 + 1 + 1) - 1);
    int yRand = random.nextInt((1 + 1 + 1) - 1);
    
    System.out.println("x: " + xRand);
    System.out.println("y: " + yRand);
    
    2 回复  |  直到 7 年前
        1
  •  -1
  •   Arne    7 年前

    random.nextInt(1 + 1 + 1) - 1

    random.nextInt(1 + 1 + 1) 将生成从0到2的随机整数(考虑mod 3)

    添加 -1 将导致它从-1生成到1

        2
  •  2
  •   Andy Turner    7 年前

    你陈述了这个问题

    random.nextInt(max + 1 - min) + min
    

    但是,使用 max == 1 min == -1 ,你已经写了

    random.nextInt((max + 1 - min) + min)
    

    移动决赛 -1 在括号外。

    int xRand = random.nextInt(1 + 1 + 1) - 1;
    

    (并考虑使用名为 min max 而不是你以后回到这段代码时不知道其含义的神奇数字。

    推荐文章