Java中的增量
我试图给数组一些值 到目前为止,我有以下代码Java中的增量,java,algorithm,math,Java,Algorithm,Math,我试图给数组一些值 到目前为止,我有以下代码 double[] weeks = new double[10]; for(int i = 0; i < weeks.length; i++) { weeks[0]= 2; weeks[9]= 26; } 这里是数学有用的地方: weeks[0]= 2; weeks[9]= 26; 可视为 f(0)=2 f(9)=26 现在,如果你想要一个线性关系,那么fx的形式是fx=a*x+b。你已经有了
double[] weeks = new double[10];
for(int i = 0; i < weeks.length; i++) {
weeks[0]= 2;
weeks[9]= 26;
}
这里是数学有用的地方:
weeks[0]= 2;
weeks[9]= 26;
可视为
f(0)=2
f(9)=26
现在,如果你想要一个线性关系,那么fx的形式是fx=a*x+b。你已经有了上面的两个数据点,你只需要解a和b。提示:您可以简单地推断b应该是2。第1周或索引0需要是2,第10周或索引9需要是26
如果我理解您的意思,您希望以大约相等的间隔使用2到26的值填充数组week。你可以用这样的东西
int min = 2;
int max = 26;
int count = 10;
double inc = (max - min) / (double) (count - 1);
int[] weeks = new int[count];
double init = min;
for (int i = 0; i < count; i++) {
weeks[i] = (int) Math.round(init);
init += inc;
}
System.out.println(Arrays.toString(weeks));
此代码输出
[2.0,4.6666666666666,7.333333333332,9.999999999998,12.66666666666666664,15.33333333333,17.999999999999999999996,20.6666666666664,23.333333333333332,26.0]我也不太确定你想要实现什么,但我可能知道你的问题是什么。如果只想增加for循环中的变量i,只需编写:
for(float i=0;i < weeks.length;i+=2.6) {
//Do your Code here
}
但我不认为这是你的问题,所以请准确地给出一个例子,并在注释中写下你希望代码做什么
public class SolutionClass {
public static void main(String[] args) {
double[] weeks = new double[10];
int [] intList = new int[10];
int sum = 0;
weeks[0] = 2;
weeks[9] = 26;
double average = (weeks[weeks.length - 1]-weeks[0]) / (weeks.length - 1);
for (int i = 1; i < weeks.length - 1; i++) {
weeks[i] = weeks[0] + i * average;
}
for (int i = 0; i < weeks.length; i++) {
System.out.println(i + "; " + weeks[i]);
}
}
}
输出:
0;2
1.4.666666666666666
2.7.333333333333333
3.10
4.12.666666666666666
5.15.333333333333332
6.18
7.20.666666666666664
8.23.333333333333332
9; 26.0
现在还不清楚你想要实现什么,以及这与你所包含的代码有什么关系。在我的数组中,我试图以增量增加。我想基本上弄清楚如何将2.6加到前面的索引之和上,或者双d=2,d<26;d+=2.6?你能再详细说明一下吗?d代表什么?它是一个变量。i表示forint i=0中的值;i<周长;i++?为什么将weeks更改为int[]?这基本上就是我要实现的。我必须使用最小值和最大值吗?我正试图用尽可能少的代码来完成这项工作。@马特先生,上面所说的一切都是在计算,你当然可以随心所欲地去做,包括使用魔法值,而不是最小值和最大值。
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
double[] weeks = new double[10];
int [] intList = new int[10];
double increment = 2.666666666666666;
int sum=0;
double average=0;
weeks[0]= 2;
for(int i = 1; i < weeks.length; i++) {
weeks[i]= weeks[i-1]+increment;
}
System.out.println(Arrays.toString(weeks));
}
}
for(float i=0;i < weeks.length;i+=2.6) {
//Do your Code here
}
public class SolutionClass {
public static void main(String[] args) {
double[] weeks = new double[10];
int [] intList = new int[10];
int sum = 0;
weeks[0] = 2;
weeks[9] = 26;
double average = (weeks[weeks.length - 1]-weeks[0]) / (weeks.length - 1);
for (int i = 1; i < weeks.length - 1; i++) {
weeks[i] = weeks[0] + i * average;
}
for (int i = 0; i < weeks.length; i++) {
System.out.println(i + "; " + weeks[i]);
}
}
}