1

因此,我需要使用 Java 标准集合输出 -50 到 +50 之间的随机数,然后将这些随机数输入到 ArrayList 中并进行第一次升序和第二次降序排序。

输入和排序我知道该怎么做,但是考虑到这些必须通过 for do 循环逐一输入到 ArrayList 中,我如何生成 -50 到 50 之间的随机数

注意这个问题是为了考试,所以即使 for-do 循环(作为迭代)会导致开销,我仍然需要遵循这些准则。

非常感谢

4

3 回答 3

3

您可以在以 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
于 2013-09-09T06:19:19.833 回答
2

如果你想要整数,那么Random.nextInt就会这样做。

myRandom.nextInt(101) - 50

应该使用 [-50, 50] 中的平坦分布生成伪随机整数。

公共 int nextInt(int n)

返回一个伪随机、均匀分布的 int 值,介于 0(包括)和指定值(不包括)之间,取自该随机数生成器的序列。nextInt 的一般约定是伪随机生成并返回指定范围内的一个 int 值。所有 n 个可能的 int 值都以(大约)相等的概率产生。

于 2013-09-09T06:16:08.277 回答
0

另一种方式

产生一个随机的 double :

Math.random()

例如,产生一个小于 100 的随机双精度数

Math.random()*100

您可以将结果转换为您想要的任何数字类型

你可以产生这样的结果

double r = Math.random()*50
if(r % (int)(Math.random()*10 == 2){
    r = r*-1;
}

类似的东西

于 2013-09-10T07:27:06.510 回答