球從 100 米高度自由落下,每次落地反彈回原高度一半,再落下。求:第 10 次落地時共經過多少米?第 10 次反彈多高?
public class FreeFall {
public static void main(String[] args) {
double total = 0; // 總路程
double h = 100; // 當前高度
for (int i = 1; i <= 10; i++) {
total += h; // 下落
h /= 2; // 反彈高度
if (i < 10) total += h; // 非最後一次需加上升
}
System.out.println("第10次落地總路程: " + total); // 299.609375
System.out.println("第10次反彈高度: " + h); // 0.09765625
}
}
總路程 = 100 + 2 * 100 * (1/2 + 1/4 + ... + 1/512) - 100/1024 (等比數列求和)
反彈高度 = 100 * (1/2)^10 = 100/1024
e 替代固定 1/2