【发布时间】:2014-11-19 19:17:31
【问题描述】:
我有点困惑。只要 i 是 16 及以上,mit 随机选择 x 为 0。怎么会?
Random random = new Random();
for(int i = 1; i < 20; i++)
{
int[] input = generateArray( (int)Math.round(Math.pow(2, i)), (int)Math.round(Math.pow(2, i+i)) );
int x = input[random.nextInt(input.length-1)];
System.out.println(BinarySearch.go(input, x));
}
对不起,我忘了给你看 generateArray:
public static int[] generateArray(int amount, int max)
{
int[] randomNumbers = new int[amount];
double delta = max / (float)amount;
Random random = new Random();
for (int i = 0; i < randomNumbers.length; i++) {
randomNumbers[i] = (int)Math.round(i*delta + random.nextDouble() * delta);
}
return randomNumbers;
}
基本上生成一个长度为amount的int数组,并用随机(bound = amount * 2)找到的递增整数填充它。
【问题讨论】:
-
input包含什么? -
什么是
generateArray?