芋の独り言

当ブログへのアクセスは当ブログのプライバシーポリシーに同意したものとみなします.

菅田将暉さん主演の”アルキメデスの大戦”を見たので...

”月曜から夜更かし”で桐谷さんが紹介していた”アルキメデスの大戦”視ました~ 面白かったですネ. 菅田将暉さん演じる数学の天才が大日本帝国が戦争へと向かうのを阻止するために, 米の大学行きを取り止め, 舘ひろしさん演じる山本五十六の元で数学を駆使して奔走するというよな感じ. その姿に,始めは嫌悪感を抱いていた柄本佑さん演じる菅田将暉さん付きの兵士も心を 動かされ,積極的に協力していったりと熱い展開が, まぁベタですがあって面白かったです. そして,最後の方で,何故軍艦を無理やり作ろうとしていたのか,その真意が分かるという... 納得してしまうような感じでしたわ.

まぁ,そんなところなんですが, 映画の終盤で船の建造費を算出するために鉄の総量から導き出す数式が出てくるのですが, keisan.casio.jp っという数式でして,二番煎じ的ではありますが, Pythonで書いてみました. 劇中で示された数式といいますか,関数f(x)はその船の鉄1トンあたりの価格のようで, その関数から算出された数値に鉄の総量をかけることで, 船の建造費が求められます. 劇中ではそのことは言っていなかったはずで,以上のサイトを見るまでよく分かりませんでした. 数式に入れれば価格が出るものとばかり...

以下はmathを使いましたが,余裕があればsympyとかでも書いとこうな~


from math import *

def construction_cost(irons:int):
    x = irons - 1344
    numerator   = 0.4935 * pow(x, 2)
    denominator = sqrt(x**4 + 2.3949 * 10**12 + 1.4195 * 10**6 * x**2)
    fx = 0.7787 - (numerator/denominator)
    return fx * irons

if __name__ == "__main__":
    irons = int(input("鉄の総量[トン]:"))
    print(construction_cost(irons))