月が地球に落ちてこないのはなぜ?プログラミングで実験!

親子で学ぼう!ちちんぷいぷいプログラミング第6回(毎週日曜あさ10時更新/全10回)

エンちゃん:
世界一プログラミングに詳しいゆるキャラ、エンちゃんです。

小池美由:
プログラミングアイドルを目指す、現状はただのアイドル…小池美由です。


エンちゃん:
小池さん、今日は気合入れてくださいね。
いきなり難易度上がりますよ!

小池:

ハードルあげないでぇ。

エンちゃん:
ま、あげてもあげなくてもやることは一緒なんで。

小池:
手厳しい。


「地球」をつくろう!

エンちゃん:
今日のテーマは「重力」です。

小池:
え、番組変わった?Eテレ。

エンちゃん:
違います。月がなぜ地球に落ちてこないかわかりますか?

小池:
重力・・・?

エンちゃん:
そう。今日はその仕組みをプログラミングで学びます。


小池:
できる気がしません。

エンちゃん:
諦めてはいけません。


エンちゃん:
それではmoonblock(ムーンブロック)を開いて。

エンちゃん:

まずは地球を作りましょう。
地球なんで背景は宇宙にしましょう。


「月」をつくろう!

エンちゃん:
続きまして月をつくります。
さぁ、ここからが本番!

小池:
なんか、エンちゃん生き生きしてるね。

エンちゃん:
今日は「JavaScript(ジャバスクリプト)」というプログラミング言語を実際に書いてみます。
とりあえず見ててください。



エンちゃん:
ジャバスプリクトキットから「実行」というブロックを持ってきて、まず初期値を決めます。
Math.random()*(かける)2-1で、X方向の初速度です。
Y方向も書いて、地球の重さをここでは1000に。月の重さを0.001にしましょう。
で、リアクションキットから、「時間が進んだとき」を選択。またジャバスプリクトから「実行」を持ってきて、プログラムを入れます。
画面の中心(160,160)が地球の位置ですから、月の位置と地球の位置、を引き算でDXDYを求めます。
それを引いたらR2を求めます。今度は万有引力の方程式を使います。
Rの中身を平方根とって、求めます。
さらに力の分散を求めます。ここでは、物理のF=maという方程式を使います。
速度は加速度の積分なので、加速度を足していけば動くはずです。


エンちゃん:
たくさんの月の中からうまく重力につかまるのが出てくれば、地球の周りをきれいに回る月になりますよ。

小池:
出てこない…。

エンちゃん:
そう、月が地球の周りを回るのってすっごく奇跡的なことなんですよ。
100個の出現を3回くらいトライしてやっと月っぽいのがでるかなー、くらいの確率です。
プログラミングを実際に書いてみると、そんなことも分かるんですよ!

小池:
奥深い。でもハードルも高い…。

エンちゃん:
大丈夫、一緒にがんばりましょう。
では、お師匠さんの時間です。


【AIお師匠さんのためになる話と番組のフルバージョンは下記の動画をチェック!】

【第6回】ちちんぷいぷいプログラミング(4分)

次回#07のテーマは「人工知能」です。お楽しみに!

ちちんぷいぷいプログラミングの他の記事