今話題の平面型人間ピラミッドで受ける負荷(荷重)をPythonで計算してみました。(^_^;
設定は「B!はてなブックマーク」で見つけたこちらの記事です。(^_^;
●たった5段のピラミッドで一番下の子が受ける負荷がすごすぎる - あれこれやそれこれ
一番上の人を第1段、左から1番目として、10段目まで求めてみました。
私の中高生の頃は5段ぐらいだったと思いますが、10段とかやらされている人もいたんですね。(^_^;
それから、中央の人より端の人の方がお得だったんですね。同じ段ならどこもたいして変わらないと思っていました。(^_^;
● HumanPyramid1.py
# coding: UTF-8 # HumanPyramid1.py def Round(x): return int(round(x)) # weight on each person in a human pyramid def WeightInHP(i, j): # 上からi段目、左からj番目。(1,1)からスタート AW = 50 # 平均体重 if i==1: return 0.0 elif j==1: return (WeightInHP(i-1,j)+AW)/2.0 elif i==j: return (WeightInHP(i-1,j-1)+AW)/2.0 else: return (WeightInHP(i-1,j-1)+AW)/2.0+(WeightInHP(i-1,j)+AW)/2.0 def main(): N = 10 for i in range(1,N+1): s = " "*2*(10-i) for j in range(1,i+1): s+="%3d "%Round(WeightInHP(i,j)) print("%s"%s[:-1]) if __name__ == '__main__': main()
●実行結果
0 25 25 38 75 38 44 106 106 44 47 125 156 125 47 48 136 191 191 136 48 49 142 213 241 213 142 49 50 146 228 277 277 228 146 50 50 148 237 302 327 302 237 148 50 50 149 242 320 365 365 320 242 149 50
※参考URL
http://math.stackexchange.com/questions/486807/how-much-weight-is-on-each-person-in-a-human-pyramid