読者です 読者をやめる 読者になる 読者になる

PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 317 / 爆竹

爆竹が地上100mの高さで爆発する。爆竹は爆発すると非常に細かい破片となり,四方八方に初速 20m/s で広がる。破片は空気抵抗を受けず,g=9.81 m/s^2 で一定の重力場において動くものと仮定する。

破片が地面に到達するまでに動いた領域の体積(m^3)を小数点以下4桁に丸めて答えよ。

Problem 317 - Project Euler


普通の高校生に解けそうな問題でした。まず適当な座標をとります。

 x = v \cos\theta\, t,\, y = h + v \sin \theta\, t-\dfrac{1}{2}gt^2

t を消去。

 y=h+x\tan\theta-\dfrac{g}{2v^2 \cos^2 \theta}x^2

これの包絡線を求めてバウムクーヘン法で体積を求めます。


答えの表示が地味に面倒でした。Mathematica は大きな数は a*10^b の形で表示する仕様です。N[ ] で桁精度を指定したり,ScientificForm[ ] を使ったりしてもうまくいかなかったので,整数部分と小数部分にわけて表示してお茶を濁しました。