我真的很难做到这一点! z
是一系列引力场。为了找到作用在行星上的总引力场,比如地球,我想把所有的条目加在一起,同时排除地球引力场的入口,因为地球的引力不会作用于地球本身。
例如,说z = [earthGrav, sunGrav, marsGrav, moonGrav]
。然后地球上的总场地为sunGrav+ marsGrav + moonGrav
。我可以使用s=i+1
处理这个问题。但是,对于太阳,当sunGrav = earthGrav+marsGrav+moonGrav
时,这不会起作用,因为第一个条目将被遗漏!
for(int i=0; i<planets.length;i++){
for(int s=0;s<z.length;s++){
if(i!=s){
sum1.increaseBy(z[s]);
newP[i] = planets[i].updatePosition(position[i], velocity[i], timeStep, sum1);
}
else{
sum1.scale(1);
}
}
}
问题是,我上面的方式意味着每当我向i
添加1时,1也会被添加到s
,因此s
和{{1}始终是相同的,if语句永远不会被执行!谁能想到办法做到这一点?