Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中生成介于-1和1之间的随机数_Java_Random_Numbers - Fatal编程技术网

如何在Java中生成介于-1和1之间的随机数

如何在Java中生成介于-1和1之间的随机数,java,random,numbers,Java,Random,Numbers,要暂时解决这个问题,需要一个-1、0或1的随机数。任何帮助都会很好 Random random = ThreadLocalRandom.current(); int randomNumber = random.nextInt(3) - 1; 如果您使用Java=8版本,则会有更简单的方法: 现在,java.util.Random类根据Streamapi提供了其他方法,如: public IntStream ints(int randomNumberOrigin, int randomNumbe

要暂时解决这个问题,需要一个-1、0或1的随机数。任何帮助都会很好

Random random = ThreadLocalRandom.current();
int randomNumber = random.nextInt(3) - 1;

如果您使用Java<8版本,那么旧方法将非常适合您:

您可以使用
java.util.Random
类及其方法
nextInt(int-bound)
。此方法生成从0(包含)到绑定(独占)的随机整数。如果需要特定范围,则需要执行一些简单的数学运算:

  • 削减范围:
    max-min
  • 如果您想包括上限值,那么将添加1:
    nextInt((max-min)+1)
    (可选步骤)
  • 将生成的数字移到下限值:
    nextInt((max-min)+1)+min
  • 结果:

    Random r = new Random();
    int randomNumber = r.nextInt((max - min) + 1) + min;
    
    如果您使用Java>=8版本,则会有更简单的方法:

    现在,
    java.util.Random
    类根据
    Stream
    api提供了其他方法,如:

    public IntStream ints(int randomNumberOrigin, int randomNumberBound)
    public IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
    
    现在,您可以生成从原点(包含)到绑定(独占)的随机整数,如下所示:

    Random r = new Random();
    r.ints(min, max).findFirst().getAsInt();
    
    如果要在生成过程中包含上限,则:

    r.ints(min, (max + 1)).findFirst().getAsInt();
    
    要防止产生无限流,请执行以下操作:

    r.ints(min,(max+1)).limit(1).findFirst().getAsInt()

    r.int(1,最小,(最大+1)).findFirst().getAsInt()

    答案1

    long l = System.currentTimeMillis();
    int randomNumber = (int) (l % 3) - 1;
    
    答复2

    int randomNumber = (int) (Math.random() * 3) - 1;
    
    答复3

    Random random = new Random();
    int randomNumber = random.nextInt(3) - 1;
    
    看看这个

     Random r = new Random();
    
        int n = r.nextInt((1 - -1) + 1) + -1;
        System.out.println(n);
    

    它将在您想要的范围内随机生成。输出将为1、0或-1。

    您可以将
    int
    数组与类一起使用。将值存储在整数数组中,并为数组的索引生成随机数

    示例代码:

    final int[] arr = new int[] { -1, 0, 1 };
    Random number = new Random();
    int n = number.nextInt(arr.length);
    System.out.println(arr[n]); //arr[n] will give you random number
    

    在此处显示您失败的尝试,以便我们建议如何修复它。查看