Pythonプログラミング古典事例【試験問題】自由落下するボールの軌道

この記事では、Python プログラミングの古典的なケースを一緒に検討し、Python を没入的に学習できるようにします。最終試験で高得点を獲得し、大工場から希望のオファーを獲得できるようお手伝いします。自分自身で質問を取り上げ、さまざまな問題解決方法が何通りあるのかを考え、それをこの記事の問題解決方法と比較してください。異なる意見がある場合は、公式アカウントで議論してください。

  
  

1.典型的なケース【試験問題】

  
問題:ボールは 100 メートルの高さから自由落下し、地面に当たるたびに元の高さの半分まで跳ね返り、再び落下します。5 回目に最高点まで跳ね返ったとき、ボールは何メートル進みますか? ? 5回目のバウンドの高さはどれくらいですか?
  
入力: 100、5
  
出力: (290.625, 3.125)
  
ここで、290.625 はボールが自由落下で 5 回目に最高点までバウンドするときに移動した合計メートル数、3.125 は 5 回目のバウンドの高さです。

  
  

2. 典型的なケースの問題解決方法

  

方法 1: for ループを使用して、自由落下の全長と n 番目のリバウンドの高さを見つけます。

  
まず、100 メートルの高さからボールが自由に落下し、最初の数回の軌道がどのようになるかを見てみましょう。
  

ここに画像の説明を挿入
  
ボールがバウンドするたびに、ボールの高さは以前の高さに比べて半分に縮むことがわかり、5回目のバウンドから最高点までの全長は、100+50✖2+25✖2+12.5✖となります。 2+6.25✖2+3.125=290.625。for ループにより、自由落下の軌道をシミュレーションし、n 回目のリバウンドの全長と高さを取得できます。
  
具体的なコードは次のとおりです。

def free_fall_game1(x, cnt):
    '''
    x:初始高度
    cnt:第几次反弹
    '''
    high = x
    sum_high = high
    cur_high = 0
    for i in range(cnt):
        if i<cnt-1:
            cur_high = high/2
            sum_high += cur_high*2
            high = high/2
        else:
            cur_high = high/2
            sum_high += cur_high
            high = high/2
    return sum_high,cur_high
    
free_fall_game1(100, 5)

cur_high: 現在のリバウンド高さを示します。
  
sum_high: 移動の合計の長さを示します。
  
答えが得られました:

(290.625, 3.125)

このうち、290.625はフリーフォールでボールが5回目に地面に着地したときの総移動メートル数、3.125は5回目のリバウンドの高さである。ループがよく分からないという方は、この記事を読むと【pythonのループ文】をしっかり理解できます。興味のある学生は、コードを Python にコピーし、最初の高さと着地回数を調整することで、自由落下の全長と n 回目のリバウンドの高さを取得できます。

  

方法 2: while ループを使用して、自由落下の全長と n 番目のリバウンドの高さを見つけます。

  
問題が微調整されているとします。ボールが 100 メートルの高さから自由に落下し、地面に当たるたびに元の高さの半分まで跳ね返り、再び落下します。ボールが地面に跳ね返ったとき、ボールは何メートル進みますか。 10回目の最高点は?10回目のバウンスはどれくらいの高さですか?原理は似ていますが、while ループを使用して自由落下する物体の軌道をシミュレートし、n 番目のリバウンドの全長と高さを取得する点が異なります。
  
具体的なコードは次のとおりです。

def free_fall_game2(x, cnt):
    '''
    x:初始高度
    cnt:第几次落地
    '''
    i = 1
    sum = 0
    while i<=cnt:
        sum += x
        x = x/2
        sum += x
        i += 1
    return sum, x
    
free_fall_game2(100, 10)

答えが得られました:

(299.70703125, 0.09765625)

2 つの方法で得られた結果が一貫していることを手動で検証できます。ここまで、Pythonでのプログラミングの古典的なケース【試験問題】、自由落下するボールの軌道について説明してきました。Python の関数についてさらに詳しく知りたい場合は、公式アカウントの「Python を学ぶ」モジュールの関連記事を読むことができます。

  
あなたは興味があるかもしれません:
Python でピカチュウを描くPython で
ワード クラウド マップを描く
Python で 520 回の永遠の鼓動を描くPython 顔認識 -だけが
私の目にはneo4j を操作するには Python の py2neo ライブラリを使用しますPython のロマンチックな告白ソース コード コレクション (愛、バラ、写真の壁、星空の下での告白) の関係マップを構築します。



長押し (スキャン) して上の QR コードを認識すると、Python とモデリングの知識がさらに深まり、学習や仕事がより効果的になります。

おすすめ

転載: blog.csdn.net/qq_32532663/article/details/125589031