private static final int SIZE = 10000000;
private static final int h = SIZE/2;
private static float[] method1() {
float arr[] = new float[SIZE];
//array fill with 1,
for (int i = 0; i < arr.length; i++) {
arr[i] = 1;
}
//calulate new values with new formula
for (int i = 0; i < arr.length; i++) {
arr[i] = (float) (i * Math.sin(0.2f + i / 5) *
Math.cos(0.2f + i / 5) *
Math.cos(0.4f + i / 2));
}
//return new value
return arr;
}
private static float[] method2(){
float arr[] = new float[SIZE];
float firstarr[] = new float[h];
float secondarr[] = new float[h];
float result[] = new float[SIZE];
for (int i = 0; i <arr.length ; i++) {
arr[i] = 1;
}
//Devide array in two with same length arr/2,
System.arraycopy(arr, 0, firstarr, 0, h);
System.arraycopy(arr, h, secondarr, 0, h);
for (int i = 0; i < firstarr.length; i++) {
firstarr[i] = (float) (i * Math.sin(0.2f + i / 5) *
Math.cos(0.2f + i / 5) *
Math.cos(0.4f + i / 2));
}
for (int i = 0; i < secondarr.length; i++) {
secondarr[i] = (float) (i * Math.sin(0.2f + i / 5)
* Math.cos(0.2f + i / 5)
* Math.cos(0.4f + i / 2));
}
//compile back in one
System.arraycopy(firstarr, 0, result, 0, h);
System.arraycopy(secondarr, 0, result, h, h);
// return result
return result;
}
private static long amount(float[] arr){
long result = 0;
for (int i = 0; i <arr.length ; i++) {
result += arr[i];
}
return result;
}
public static void main(String[] args) {
System.out.println(amount(method1()));// ammount for first method: 22527562
System.out.println(amount(method2())); // ammount for second method: -20047478
}}
你的问题是循环。第一个方法循环i从0到N,第二个方法循环两次从i到N/2。
例如:对于N=4,第一个方法返回您
i=0 0.0
i=1 0.17....
i=2 0.066....
i=3 0.099....
但是第二个:
i=0 0.0
i=1 0.17....
i=0 0.0
i=1 0.17....
for (int i = h; i < SIZE; i++) {
secondarr[i-h] = (float) (i * Math.sin(0.2f + i / 5)
* Math.cos(0.2f + i / 5)
* Math.cos(0.4f + i / 2));
}
我的代码如下所示:
我在Java中有两个几乎相同的方法。唯一的区别是它们有不同的参数类型。它们使用泛型并返回输入参数的类型T。我怎样才能摆脱重复的代码?下面是我的两个方法。最后,它们都使用不同的类型调用Spring。否则,方法是相同的。
问题内容: 考虑到我有两个数组,例如: 这样,在一个方法中,我计算了两个数组,即& ,现在我想返回这两个数组。我应该怎么做? 我在这里读到我可以创建另一个类并定义某些对象类型,并将这些数组封装在该类构造函数中,但是我仍然感到困惑,并且不完全理解。 如果您能给我看一个可行的例子,或者有任何类似的想法,那将是很好的。 问题答案: 您实际上还可以返回如下内容: 假设在调用此方法的地方之外,返回的对象是。
问题内容: 我已经看到了一些类似的问题两种不同的类型如何使用接口在golang中实现相同的方法?,但就我而言,我的类型没有相同的基本类型。我的类型是不同大小的数组。 因此,可能不重复两种方法GetByte0()? 问题答案: 例如, 输出:
我有两个不同的方法,在两个不同的类中。我希望他们都能阅读同一行输入,并检查不同的内容。一个查找“给我冲杯咖啡”之类的说明,另一个查找不同的关键字,如“请”和“谢谢”(这些影响程序对我的反应): 然后我在我的主字符串中调用它们,只是为了测试它们: 我的控制台显示如下: 我知道发生了什么,但我想不出其他办法。我也尝试过使用同一个扫描仪,不同的字符串,但仍然不起作用。我怎样才能使这两种方法都能读取我的第
本文向大家介绍C#比较二个数组并找出相同或不同元素的方法,包括了C#比较二个数组并找出相同或不同元素的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#比较二个数组并找出相同或不同元素的方法。分享给大家供大家参考,具体如下: 希望本文所述对大家C#程序设计有所帮助。