[英]How to increment an array with a nested for loop?
必须有一种更优雅的方法来执行以下操作:
for(int i = 0; i < subsets.length-10; i++) {
sample = (int)subsets[i];
int y = (sample
+ ((int)(subsets[i+1]))
+ ((int)(subsets[i+2]))
+ ((int)(subsets[i+3]))
+ ((int)(subsets[i+4]))
+ ((int)(subsets[i+5]))) / 6;
}
基本上,它为“子集”递增添加接下来的5个值。 如何使用嵌套的for循环使用单个公式,这意味着我可以增加它添加下一个值的次数,然后除以该次数还可以得出平均值。
就像是?:
y = (sample + ((int)(subsets[i++n]))/n
其中n
是它递增地增加下一个值的次数
有任何想法吗?
样本并不特殊,它仅是i + 0,因此您不必隔离它。 你可以试试:
for(int i = 0; i < subsets.length-10; i++) {
int y = 0;
for(int j=i;j<i+n-1;j++) {
y += (int)subsets[j];
}
y = y / n;
}
此流应为您提供所有y
值:
IntStream.range(0, subsets.length - 10)
.map(i -> Arrays.stream(subsets, 0, 6).sum() / 6);
如果可以使用IntStream.average()
也可以使用IntStream.average()
代替自己计算。
y = Arrays.stream(subsets, i, i+6).sum()/6;
您的嵌套循环方法是正确的。 尝试这样的事情:
for ( int i = 0; i < subsets.length - 10; i++ )
{
sample = subsets[ i ];
int y = sample;
for ( int k = i; k < i + 5; k++ )
{
y += subsets[ k ];
}
y /= 6;
}
int sample;
for (int i = 0; i < subsets.length - 10; i++) {
sample = (int) subsets[i];
for (int j = i; (j < i + 6) && (j < subsets.length -10); j++) {
sample += subsets[i];
}
int y = sample / 6;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.