如何在Java中生成介于-1和1之间的随机数
要暂时解决这个问题,需要一个-1、0或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
Random random = ThreadLocalRandom.current();
int randomNumber = random.nextInt(3) - 1;
如果您使用Java<8版本,那么旧方法将非常适合您: 您可以使用
java.util.Random
类及其方法nextInt(int-bound)
。此方法生成从0(包含)到绑定(独占)的随机整数。如果需要特定范围,则需要执行一些简单的数学运算:
max-min
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
在此处显示您失败的尝试,以便我们建议如何修复它。查看