ゲームのマップ面積はものすごく広くなりました。
マイクラのマップ面積から、マイクラ星の半径などを計算したら、
- マイクラ星の半径は地球の2.8倍
- マイクラ星の重力は地球の22倍
ってことが分かりました。
小学校の算数、高校の数学を組み合わせて、計算できると面白いです。
簡単な数式・簡単なpythonプログラムなので、ぜひやってみてください。
よろしくー
▼事前に読んで欲しい記事▼
マイクラ星は地球よりも広い?
さて、こんな動画を見つけました。
40億9600万 平方キロメートルってどんぐらい?
よく調べたもんだよねー
そこで思ったんです。
つまりどんぐらい広いの?
マインクラフトの星の大きさって地球と比べてどんくらいなん?
ということで逆算をすることに。
マインクラフトのマップの広さを球の表面積として、半径を求めます。
結果は、なんと地球の半径の2.8倍とでました。3倍近いですね。
すごい!広い!
それでは、電卓でも良いですが、pythonのプログラムを使って計算してみましょう。
計算したくなったー?
高校の数学の復習 ~球の表面積と半径の関係~
星の表面積から、星の半径を計算する式を確認しましょう。
高校で、積分ってので、球の体積や表面積を求める式を導く演習をしました。
半径と円周率から、円周・円の面積、さらに球の表面積・体積を計算できます。
高校なんで変数や記号使いますよー。
下の式は「表面積A=」の式なので、「半径r=」の式に変形すれば、表面積と円周率から半径を計算することができます。A(40億9600万)とπ(3.14)なので、rを求めます。
下の式で、半径と円周率から体積が計算できます。上の式で計算した半径を使うので、変形はしなくてOK。上の式で求めたrとπ(3.14)を使って、Vを求めます。
まだ逃げないでー
pythonでマイクラ星の半径を計算してみよう
A=4πr^3の式をr=の式に変形できましたか?
そして疑問・悩みがでてきましたね。
- 円周率「π」をどうしよう
- rの2乗をrにするのってどうしよう
一回ググりましょ!
ググって上手くいけば良し。ググってもできなくても良し。
ググりが終わったら。とりあえず動かしてみましょう。
下のコードを丸写ししてもらってOKです。
変形もググりも
必ず一回しようー
Pythonコードの答え
Pythonコードです。
rの2乗をrにするには「平方根」を使います。ちゃんとググったならOKです。
import math
area_mine = 4096000000 #マイクラのマップの面積[km^2]
radius_mine = area_mine /(4 * math.pi)
radius_mine = math.sqrt(radius_mine)
print(f"radius_mine = {radius_mine} [km^2]")
radius_earth = 6371 # 地球の半径[km]
ratio = radius_mine /radius_earth
print(f"ratio = {ratio}")
結果です。
radius_mine = 18054.066673528203 [km^2]
ratio = 2.833788521978999
ということで、
マイクラ星の半径は地球の2.8倍と求まりました。
この通りにプログラムする必要はないので、あなたの作ったプログラムを改良して結果表示が同じになるようにしてみてください。
先生のコピペして終わりはダメー
答え待つやついるよねー
mathライブラリを使いました
「rの2乗」をrにするための「平方根」を調べましたね。
mathライブラリに調べ着く方もいたでしょう。OKOK。
import math # プログラム中で1回やってればOKです。
math.sqrt(x) # これでxの平方根が計算されます。
さらに「python 円周率」とググった方もいたでしょう。OKです。
import math # ライブラリの読み込み
math.pi # これで円周率が呼び出せます。
調べた人はえらいねー
別にmathライブラリを使わなくてもできます。
PI=3.14 # 定数で自分で定義する場合
指数の演算子を理解しているなら、0.5乗とか1/2乗とかでもOKです。
x**0.5
「0.5乗!?」って思った方は「情報系学生がつまづきやすい計算問題2つ」をどーぞ。
指数はプログラムでは「x**2」などと書くことが多いですが、エクセルだと「x^2」なんですよね。この際覚えておきましょう。
ちゃんと数学も知るんだよー
定数は大文字の変数名にするのがマナー
せっかくなので、Pythonのコツやマナーを知っておきましょう。
定数を格納する変数は全部大文字にする習慣があります。
PI=3.14 # 定数で自分で定義する場合
どのプログラム言語でも
定数は大文字だねー
調べる力を養ってほしい
「球の表面積 半径 計算」とか「球の表面積 半径 計算 python」とかで、
答えそのものを探すこともOKです。
ただし、コードを一行だけでも理解するように更に調べてみると実力が上がります。
答えを探し出すのも実力さー
pythonでマイクラ星の重力を計算してみよう
マイクラ星の半径が計算できたので、体積を計算してみましょう。
以下のような手順でプログラムを組んでみてください。
- マイクラ星の体積を計算
- さらに地球の体積の何倍かを計算
地球の体積を計算するには、地球の半径をググらないとですね。
今度はできるかなー?
Pythonコードの答え
Pythonコードは以下のようになったでしょうか。
rad_mine = 18054 # マインクラフト星の半径。さっきのプログラムで算出しましたね。
rad_earth= 6371 # 地球の半径
vol_mine = 4/3*rad_mine**3
vol_earth= 4/3*rad_earth**3
ratio = vol_mine/vol_earth
print(f"ratio = {ratio}")
結果です。
ratio = 22.75608247554938
少しでもできたかなー?
数式から推測してみる
さらにこう考えます。
星が大きいってことは、地球と何が違うかな?
星の重さが違いますね。
ってことは、万有引力の法則により、重力も違うわけです。(正確には星「表面」での重力)
体積に密度を掛ければ重量になります。
地球とマイクラの星の組成が同じ、つまり密度ρが一緒だとすれば。
重量、体積は半径の3乗で効いてくるので、2.8の3乗=22倍!
つまりマイクラの星の重力は、地球の22倍!
マイクラ星のマイクラ星人やマイクラ星羊に勝てるわけねーぞw
「今こそ22倍の重力にも耐えた修行の成果をみせてやる!」
むしろ界王拳22倍でー
変数名は単語を「_」でつなげるのがpythonのルール
pythonのコーディング規約だと、変数は小文字で「_」つなぎます。
変数の命名規則はいろんな流派があります。
pythonでは「_」つなぎが主流ですが、他言語だと違います。使う単語については会社が決めてることが多いですね。
ま、hankei(半径)とか
ローマ字はやめとこうねー
まとめ | 学校で習ったことは現実にどう使えるか考えるのが大事!
ここまで読んで頂きありがとうございます!
ありがとー
「みはじ」「秒速を時速」「円や球の公式」などを使った演習をやってみると面白いですね。
私は小学生の時に、「みはじ」を使って「1光年」を計算したことがあります。その時に「兆」より上の言葉を覚えたし、指数を知りました。
私のIT専門学校でも授業でやりましたが、学生さんは四苦八苦しながらも計算して、この事実に笑ってくれました。
「学校で習ったことは役に立たない」と思うのは、その人が「学校で習ったことを活かせない」だけです。
習った事例はモデルケース、そのまま使えるわけありません。自分で現実問題を分析して、自分の知識のどれを使ったり組み合わせたりして少しでも解けるかなぁと、考えることが大事ですね。
ちなみに、ロボットの大きさっての動画もあります。
スパロボ好きー
αとAPが特にー