我正在做一个练习题,我被卡住了。现在的问题是Java数组建议
“给定阵列的n个(比如说加倍),考虑计算 平均第i个数字,用于i
从0
到n-1
的问题。也就是说,计算 数组b长n
,其中 b[i] = a[0] + a[1] ....+ a[i]/(i + 1)
为0 <= i < n
。 写Java程序来解决这个问题,你的程序可以生成自己的 阵列,例如a[i] = i + 1
。见数组多大,你可以在不到 5秒处理。(对于完全的信贷,它应该至少有一百万。) 表征算法的时间复杂性。“
这是我在解决它的尝试:
public class largeArray{
public static void main(String[] args){
double[] aa = new double[1000000];
System.out.println(CalculateAvg(aa));
}
public static double CalculateAvg(double[] a){
int i =0;
double[] array = new double[i];
a[i] = i + 1;
for(int k=0; k<array.length; i++){
double total = a[k]+a[k];
double sum = ((total)/a[i]);
}
return a[i];
}
}
你没有真正总结的价值观 - 你宣布对循环的每个迭代一个新的局部变量和加倍现有的价值......,什么是对的'array'价值? –
@JonSkeet基本上我想要做的是创建一个程序,它有一个不固定值的数组,并且在5秒后找到平均值的问题已经相应地解决了这个问题。我不太清楚如何初始化初始值,但要继续运行。数组值是在5秒后测试多少次。它没有真正的意义,只是一个考验而已。 – user2045470
我看不到在5秒*之后找到平均值*的地方。它必须在* 5秒之前完成*。提示:尝试声明循环中的总数*,从零开始,并将这些值相加。然后想想平均值是多少... –