我正在尝试使用以下方程式来计算电动机的平均电池长度(以分钟为单位):https://i.imgur.com/CBYRdyR.jpg
我通过使用以下代码获得平均速度:
for (Location location : locationResult.getLocations()) {
int speed = (int) (location.getSpeed() * 2.2369);
float addedSpeed = avgMPH + speed;
avgMPH = addedSpeed / 2;
float math1 = 45 / avgMPH;
batteryView.setText("Battery: " + String.valueOf(math1 * 60) + " Minutes Remaining");
}
问题在于,每次位置循环时,即使仍保持每小时1英里的速度,它也会使每个循环的电池寿命加倍。它不应像这样循环播放,不胜感激,谢谢!
答案 0 :(得分:1)
我认为您计算的平均速度错误。 您应该这样计算:
float addedSpeed = avgMPH * numSamples + speed;
avgMPH = addedSpeed / (numSamples + 1);
numSamples = numSamples + 1;
不是这样的:
float addedSpeed = avgMPH + speed;
avgMPH = addedSpeed / 2;
例如,假设您以1 mph的速度行驶10个小时,以100 mph的速度行驶1个小时。 前者的平均速度为每小时10英里,这是正确的,后者的平均速度为55.5英里,这是错误的。