Pythonは小さいボールを投げる問題を解決して小さいボールの落下の経歴の距離の和の例を求めます

1454 ワード

この例では,Pythonが小球を投げる問題を解決し,小球の落下経験を求める距離の和について述べた.皆さんの参考にしてください.具体的には以下の通りです.
質問:
東さんは3人の友达と一緒に上の階でボールを投げて、彼らはビルの異なる階に立って、もし東さんの階が地面からNメートル離れていると仮定して、ボールは彼の手から自由に落ちて、着地するたびに前回の落下の高さの半分に戻って、そしてこのようにすべて地面に落ちて踊らないことを知っていて、4つのボールを求めて全部で何メートルを通りましたか?(数値はすべて整数)
4つの整数A,B,C,Dを与え、求めた結果を返してください.
テストサンプル:100,90,80,70戻り:1020
実装コード:

class Balls:
  def calcDistance(self, A, B, C, D):
    global res
    Balls.totalDistance(self, float(A + B + C + D), float(A + B + C + D))
    return res
  def totalDistance(self, total, statDis):
    global res
    statDis /= 2
    total += statDis*2
    if statDis <= 0.01:
      res = int(round(total))
      return 
    Balls.totalDistance(self, total, statDis)
balls = Balls()
global res
balls .calcDistance(100, 90, 80, 70)
print res


実行結果:1020
この問題は主に浮動小数点数演算と出力四捨五入を考察し,与えられた出力サンプルから境界取値を推定する.(私はダイナミックプランは言わない~)
PS:ここではいくつかのコンピューティングツールをお勧めします.
オンライン一元関数(方程式)計算ツールを解くには:http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学計算機のオンライン使用_詳細計算機オンライン計算:http://tools.jb51.net/jisuanqi/jsqkexue
オンライン計算機_標準計算機:http://tools.jb51.net/jisuanqi/jsq
Pythonに関する詳細について興味のある読者は、「Python数学演算テクニックまとめ」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python関数使用テクニックまとめ」、「Python文字列操作テクニックまとめ」、「Python入門と進級経典チュートリアル」、「Pythonファイルとディレクトリ操作テクニックまとめ」を参照してください.
ここではPythonプログラムの設計に役立つことを願っています.