経緯
BongoBongoさんより、TNT64個でなるべく飛ぶTNTキャノンを作るチャレンジが開催されました。 面白そうだと思ったので、まずは限界を見極めるため最大飛距離を求めることにしました。
TNT64個でなるべく飛ぶTNTキャノンを作るチャレンジをやります
— BongoBongo (@ViDKBl9mnLB9BK1) 2024年2月16日
以下ルール
・サバイバルで再現可能
・バージョン: 何でもいい
・平らな地面の上を飛ばす
・弾頭TNTが爆発した地点(空中でもいい)の地面を着弾点とする
・弾頭TNTの初期位置の高さは地面から1m以下(画像を参照) pic.twitter.com/ZQUTc5ukIm
最大飛距離を求める
飛距離の最大値を求める前に、の最大値を求めます。
の最大値
まずはを考えます。 (爆発の1gt前)で弾頭のy座標が発射地点より1ブロック低くなるようにすると、飛距離が最長になります。このときのは定数として求められます。飛距離の公式*1から、以下のように計算します。
は、TNT着火時に与えられるy方向の速度です。
との関係式
が求まったので、との関係式が作れます。
を求める
式2からを求めると、式3のようになります。
式3にを代入します。0なのはが最も大きくなる距離だからです。
ここからは近傍において
といえることを使います。
の最大値
残りはを求めます。
式5より、 なので、式6は以下のように書き換えられます。
なので、
となります。としたのは、のときと同様でが最も大きくなる距離だからです。
式7に式4を適用します。
式8に式1を代入します。
以上より、の最大値を求められました。
飛距離の最大値
あとはの最大値をx座標の飛距離の公式に代入するだけです。
最大飛距離は2563.3ブロックでした。
ちなみに、はTNT着火時に与えられる横方向の速度で、最大0.02、最小-0.02です。水平方向の振幅は0.02で、角度だけランダムです。
着火時の速度も考慮に入れると、最大のときはブロック、最小のときはブロック飛びます。
余談
の導出において式2~7は省略できそうです。まず、式9, 10に初速度の式を再掲します。
式9, 10の2乗和を計算します。
もも0近傍なので、といえます。このとき、式11は式12のように書き換えられます。
式12を変形すると、式8と一致します。 これで証明できているか不安ですが、式が一致するのでありだと思います。たぶん。