首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 彈跳球問題:總路程與第 10 次落地高度

     編輯:Java 相關知識

經典物理模型:自由落體與彈跳

一球從 100 米高度自由落下,每次落地反彈至原高度一半,再落下。求:

  1. 第 10 次落地時,球總共經過多少米?
  2. 第 10 次反彈高度是多少?

程式實作

public class BouncingBall {
    public static void main(String[] args) {
        double height = 100.0; // 初始高度
        double totalDistance = 0.0;

        for (int i = 1; i <= 10; i++) {
            totalDistance += height; // 下落
            height /= 2;             // 反彈至一半
            if (i < 10) totalDistance += height; // 除最後一次不再落下,前 9 次需加上反彈上升距離
        }

        System.out.println("第 10 次落地總路程:" + totalDistance + " 米");
        System.out.println("第 10 次反彈高度:" + height + " 米");
    }
}

邏輯解析

  • 總路程:第 1 次只計算下落 100m;第 2~10 次各包含「反彈上升」與「再次下落」,故迴圈中先加下落,再將高度減半,若非第 10 次則再加上反彈上升距離。
  • 幾何級數觀點:總路程 = 100 + 2×(50+25+...+100/2^9) - 100/2^10(最後一次不反彈)。可用等比數列求和公式驗證。
  • 第 10 次反彈高度:100 * (1/2)^10 = 100/1024 ≈ 0.09766 米。

執行結果

第 10 次落地總路程:299.609375 米
第 10 次反彈高度:0.09765625 米

擴充應用

  • 參數化初始高度、反彈係數、落地次數。
  • 引入阻尼係數模擬真實能量損耗。
  • 繪製高度-時間曲線視覺化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved