【发布时间】:2012-03-15 07:22:17
【问题描述】:
我只需要知道我应该做什么,这样一个基本数组就会被随机生成的数字填充。现在我知道该怎么做了,我不知道怎么做就是让随机生成的数字大于一直到数组末尾生成的最后一个数字。
【问题讨论】:
我只需要知道我应该做什么,这样一个基本数组就会被随机生成的数字填充。现在我知道该怎么做了,我不知道怎么做就是让随机生成的数字大于一直到数组末尾生成的最后一个数字。
【问题讨论】:
我惊讶没有人提到我们可以使用SecureRandom API 轻松生成随机数组无需手动填充它。
例如生成大小为100的随机数组:
SecureRandom random = new SecureRandom();
int arr[] = random.ints(100).toArray();
顺便说一句,这应该可以从 java 8 开始。
【讨论】:
有一个问题的评论,我丢失了作者的名字,建议将随机生成的数字添加到之前的数字中,我认为这是一个有趣的方法。
arr[0] = Random.nextInt(100);
for(int i = 1; i < arr.length; ++i) {
arr[i] = arr[i-1] + Random.nextInt(100);
}
这消除了对结果数组进行排序的需要。
【讨论】:
Random.nextInt(range)。
nextInt(int) 时,您会无缘无故地限制自己。你可以用4来填满它。无论如何,这只是 OP 在使用此解决方案时需要考虑的一点。
您可以拥有自己的生成增量算法...
例如...
每次随机并将该数字添加到最后一个:)
Random java 中的类不允许你有一个最小限制从哪里开始......只有一个......
例如:
myArray[0] = Random.nextInt(10000);
for(int i=1; i<myArray.length; i++)
{
myArray[i] = myArray[i-1]+Random.nextInt(10000);
}
所以..它是随机的,您不必对其进行排序..尽量保持一切简单...
【讨论】:
nextInt(10000) 时,您会无缘无故地限制自己。你可以用4来填满它。 (2) 当数组大小为 ~200000 [减去零] 时,您可能会溢出。无论如何,这只是 OP 在使用此解决方案时需要考虑的一点。
只需生成列表,然后将它们从小到大排序。
for(int i = 0; i < arr.length; ++i) {
arr[i] = Random.nextInt(100);
}
Arrays.sort(arr);
【讨论】:
您可以生成一个随机数数组,然后使用Array sort对其进行排序。
【讨论】:
生成随机数,然后对数组进行排序。
您可以使用Arrays.sort()对数组进行排序
它不能确保每个数字都严格大于之前的数字 [它只保证 <=],所以如果这是一个问题 - 您必须确保生成的数字中没有欺骗。
【讨论】: