因此,我需要使用 Java 标准集合输出 -50 到 +50 之间的随机数,然后将这些随机数输入到 ArrayList 中并进行第一次升序和第二次降序排序。
输入和排序我知道该怎么做,但是考虑到这些必须通过 for do 循环逐一输入到 ArrayList 中,我如何生成 -50 到 50 之间的随机数
注意这个问题是为了考试,所以即使 for-do 循环(作为迭代)会导致开销,我仍然需要遵循这些准则。
非常感谢
您可以在以 0 开头的范围内生成随机数,如下所示:
Random randomGenerator = new Random();
int randomInt=randomGenerator.nextInt(101); //This function generate number in range 0 to 100.
randomInt -= 50; //It will give you number between -50 to 50
如果你想要整数,那么Random.nextInt
就会这样做。
myRandom.nextInt(101) - 50
应该使用 [-50, 50] 中的平坦分布生成伪随机整数。
公共 int nextInt(int n)
返回一个伪随机、均匀分布的 int 值,介于 0(包括)和指定值(不包括)之间,取自该随机数生成器的序列。nextInt 的一般约定是伪随机生成并返回指定范围内的一个 int 值。所有 n 个可能的 int 值都以(大约)相等的概率产生。
另一种方式
产生一个随机的 double :
Math.random()
例如,产生一个小于 100 的随机双精度数
Math.random()*100
您可以将结果转换为您想要的任何数字类型
你可以产生这样的结果
double r = Math.random()*50
if(r % (int)(Math.random()*10 == 2){
r = r*-1;
}
类似的东西