java随机数,范围不包括零
我正在尝试使用java.util.Random
创建一个随机数生成器。我需要生成-5到+5之间的数字,不包括零。这是我的一个实验室的bouncingbox应用程序。随机数是盒子速度的方向
Random v = new Random();
int deltaX = -5 + v.nextInt(10) ;
for(; deltaX>0 && deltaX<0;){
System.out.println(deltaX);
}
我试过了,但不排除零。任何帮助都将不胜感激
# 1 楼答案
一种可能的解决方案是每次不重新生成随机变量,即使用以下算法:
可以使用数组引用调用以下内容:
或者直接将号码插入通话:
它在开始和结束之间(包括开始和结束)生成一个随机数(int),并且不提供数组中包含的任何数字。所有其他数字都以相同的概率出现。请注意,以下约束必须成立:exclude按升序排序,所有数字都在提供的范围内,并且所有数字都是相互不同的
# 2 楼答案
这里有一个方法: