我正在尝试为数组提供一些值。
到目前为止,我有以下代码。
double[] weeks = new double[10];
for(int i = 0; i < weeks.length; i++) {
weeks[0]= 2;
weeks[9]= 26;
}
第1周(或week[0]
)需要为2,第10周(或week[9]
)需要为26。
我正在尝试识别一种算法,该算法可用于自动地在2到26之间平均递增数组的值。由于26 - 2 = 24
并且在week[0]
之后要填充9个值,我已经确定增量应为8/3
或2.6 recurring
。例如,值应为以下值。
2
4.6666666666
7.3333333333
...
23.333333333
26
答案 0 :(得分:0)
这里有数学有用的地方:
weeks[0]= 2;
weeks[9]= 26;
可以看作是
f(0)=2
f(9)=26
现在,如果您想要线性关系,那么f(x)
的格式为f(x)=a*x+b
。您已经拥有上述两个数据点,您只需要解决a
和b
。提示:你可以简单地推断出b
应该是2。
答案 1 :(得分:0)
第1周(或指数0)需要为2,第10周(或指数9)需要为26
如果我了解您,您希望以大约相等的间隔使用Meal
到novaRefeicao
的值填充数组week
。你可以使用类似的东西,
2
从2到26输出(按要求)
26
答案 2 :(得分:0)
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));
}
}
此代码输出
[2.0, 4.666666666666666, 7.333333333333332, 9.999999999999998, 12.666666666666664, 15.33333333333333, 17.999999999999996, 20.666666666666664, 23.333333333333332, 26.0]
答案 3 :(得分:0)
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.0
1; 4.666666666666666
2; 7.333333333333333
3; 10.0
4; 12.666666666666666
5; 15.333333333333332
6; 18.0
7; 20.666666666666664
8; 23.333333333333332
9; 26.0
答案 4 :(得分:-1)
我也不太确定你想要达到的目标,但我可能会遇到你的问题。如果您只想在for循环中增加变量i
,只需写:
for(float i=0;i < weeks.length;i+=2.6) {
//Do your Code here
}
但我不认为这是你的问题,所以请准确一点,举一个例子并在评论中写下你希望代码做的事情。