前回学んだ2乗の計算とルートの計算を使って、三平方の定理(ピタゴラスの定理とも言います)をプログラミングしてみましょう。中学校の数学の中でも難しい単元ですがプログラミングなら難しい計算はパソコンがやってくれるので安心してください。

前回の記事はこちら
【中学校の数学をプログラミング】 2乗とルートの計算

■三平方の定理とは?
三平方の定理とは、直角三角形の2つの辺の長さがわかれば、もう1つの辺の長さを求めることができるというもので、「底辺の2乗 + 高さの2乗 = 斜辺の2乗」と表わされる公式です。斜辺(しゃへん)というのは文字通りななめの辺という意味です。平方と2乗は同じ意味で、3つの辺を2乗(つまり平方)したときの関係を表わしたものなので、「三平方」の定理と言います。
図で表わすと以下のようになります。

図12

たとえば、底辺3cm、高さ4cmで、斜辺の長さがわからない直角三角形があったとします。底辺3の2乗は3 × 3 = 9で、高さ4の2乗は4 × 4 = 16ですね。それらを足すと、9 + 16 = 25となります。三平方の定理は、この25が斜辺の2乗に等しいことを表わしています。2乗したら25になる数値、つまりルート25はいくつでしょうか? かんたんですね。5 × 5 = 25なので、ルート25は5です。というわけで、この直角三角形の斜辺の長さは5cmということがわかりました。

■何に使えるの?
直角三角形の1辺の長さがわかる公式と言われても何に使えばいいのかよくわからないですよね。たとえば、下の図のようにサリーとコニーが画面に表示されていたとき、三平方の定理を使うと、サリーとコニーの間の距離を計算することができるのです。距離がわかれば、近くにいたら「こんにちは」と言わせるなど、距離に応じた動きをさせられますよね。ものすごく近いときはぶつかったことにするなど、ゲームにも使えます。たとえばみんなの作品で公開されている「たからさがし」はブラウンとたから箱までの距離を使ったゲームになっています。

さて、LINE entryではサリーやコニーなどのキャラクターの位置は、座標を使って表わします。下の図では、サリーの座標は(0, 0)、コニーの座標は(200, 100)です。図のように直角三角形を書けば、斜辺がサリーとコニーの間の距離ということです。

図18

では、底辺の長さはどうなるでしょうか? サリーのX座標とコニーのX座標の差を求めれば、底辺の長さを求めることができます。差を求めるには引き算を使いますよね。サリーのX座標が0で、コニーのX座標が200ですので、200 - 0は当然200です。高さはY座標の差を求めればよいので、100 - 0となり100だとわかります。あとは三平方の定理にあてはめて計算すれば距離がわかるはずです。
「底辺200の2乗 + 高さ100の2乗 = 斜辺の2乗」ですね。むむむ、ちょっと難しそうな計算です。そんなときこそプログラミングをしてパソコンに計算させてしまいましょう。 それでは計算のプログラムを作り、計算結果をブラウンに言ってもらいます。下のようにブロックを組み合わせてください。

スクリーンショット 2022-01-19 001259

底辺の2乗 + 高さの2乗で求められるのは斜辺の2乗の数値です。そしてその数値のルートを計算することで斜辺の長さを求めるプログラムです。

図1
ブラウンが「223.607」といえば成功です。

■距離を求める問題にチャレンジ!
さきほど作ったプログラムの数値を変えて、下の画像のサリーとコニーの距離を求めてみてください。サリーの座標はすべて(0, 0)になっています。

図19
左からコニーの座標は(100, 45)、(-100, -45)

すべての距離を求められましたか? サリーの座標が(0, 0)なので、コニーのX座標の数値を底辺、Y座標の値を高さとしてそのまま入力すればサリーとコニーの距離を求めることができます。マイナスの数値もそのまま入力しましょう。

答えは左から「109.659」、「109.659」です。計算が終わったあと、あることに気がつきましたか? 1つ目はマイナスの座標でも変わらず距離が求められること。2つ目は(100, 45)と (-100, -45)の距離がまったく同じということです。

1つ目については、2乗をするとマイナスの数値もプラスの数値になるという性質があるので、コニーの座標やサリーの座標がどんな数値でも距離がマイナスになることはありません。(くわしい理由や性質は中学校で習います)
2つ目については、座標を線で結んでできる直角三角形を考えてみてください。座標はプラスとマイナスで異なりますが底辺、高さ、斜辺すべてが同じ直角三角形になっていますね。だから距離も同じになるというわけです。

ちなみに底辺の値と高さの値を入れかえても斜辺の長さは変わりません。そのため下の図のコニーはすべてサリーから同じ距離の場所にいます。

図20
コニーの座標は(45, 100)(100, 45)(100, -45)(45, -100)(-45, -100)(-100, -45)(-100, 45)(-45, 100)。サリーとコニーの距離はすべて109.659です。

今回はここまで。
三平方の定理を使って距離を求めるプログラムを作ることができました。ルートを求めると小数になってしまうことも多く、難しく感じた方もいるかもしれません。まずはお手本どおりにプログラムを作って、三平方の定理を使えば距離を求められることがわかればだいじょうぶです。次回は距離によって動作が変わるプログラムを作っていきます。お楽しみに!

●まずは登録! →  LINE entry
●LINE entryの動画はこちら! →  YouTube
●公式Twitter フォロー、いいね!・RTもお願いします! → 公式Twitter
●ブックマーク登録お願いします →  公式ブログ