お知らせ

ただいま、シンタックスハイライターの設定を見直しております。
プログラムが見にくくなっているページがありますが、ご容赦ください。

「モデル化とシミュレーション」前夜

モデル化とシミュレーション

こんにちは。今回は「モデル化とシミュレーション」の前置きのお話です。高校の情報科の内容が主なテーマのサイトのはずなのに、突然ですが小学校算数の問題の話に飛びます。

小学校 算数の文章題

小学校の算数で「旅人算」であるとか、「鶴亀算」であるとか、「〇〇算」という名が付いた未知数を求めるための問題があります。余談ですが、私が小学生だった三十数年前には、そのような名前があったかどうかは不確かです。

算数の文章題を分類したとき、2人以上が移動するときの時間や道のりを求める問題になっているものを総称して「旅人算」と呼ぶらしいです。

例えば、「太郎くんが駅に着いた8時に忘れ物に気が付いて自宅に分速55メートルで戻りました。同時刻の8時に、弟の次郎くんがその忘れ物を持って、駅に向かって分速45メートルで届けに出発しました。自宅と駅の間は1キロメートル離れています。太郎くんと次郎くんが出会って忘れ物を渡すことができるのは、8時何分ですか。」というような問題です。このような問題を一度は目にしたことがあるのではないでしょうか。

文章題の解法

この問題の解法として、次のようなものが考えられます。

  1. 2人の距離の差に注目して時刻を求める解法
    • 2人の距離は1分間で(55+45)メートル=100メートル近づく
    • 最初2人は1キロメートル=1000メートル離れている
    • 2人の距離の差が0メートルになるには、1000÷100=10分かかる
    • 8時の10分後に出会うので、8時10分に出会う。
  2. 2人の位置を移動時間を示す変数で表して方程式を解く方法
    • 2人が出発してからの移動時間をt分とする。
    • 家の位置を0、駅の位置を1000とする。
    • 家から駅方向をプラス、逆方向をマイナスと表す。
    • 太郎くんは駅から家の方向に分速55メートルで移動するので、太郎くんの位置は(1000-55t)メートルと表せる。
    • 次郎くんは家から駅の方向に分速45メートルで移動するので、次郎くんの位置は(45t)メートルと表せる。
    • 2人の位置が同じときに出会うので、1000-55t=45t を満たすtを求めれば、出発してから出会うまでの移動時間が求められる。(この式は1次方程式になっている)
    • 1次方程式を解くと、t=10が求まるので、2人は8時10分に出会う。
  3. 実際に歩いてみて確かめる方法

実際に歩いたつもりになってみるには

案外、3番の実際に歩いてみて確かめるということを考え付く人は多いと思います。机上の空論かもしれませんが、机上で実際に歩いたつもりになってみましょう。

  • 1/10000スケールにして、駅と家が10m離れるように測ります。
  • 次に駅の位置に太郎くん人形、家の位置に次郎くん人形を置いてみます。
  • 1分経過したつもりで、太郎くん人形を55cm家に近づけます。そして次郎くん人形を45cm駅に近づけます。まだ2人は出会いません。
  • 少しずつ移動を繰り返して2人が出会うまで続けます。
  • そうすると、太郎くんと次郎くんが出会う時刻が求められます。

このとき、特に太郎くん人形でなく、クマさん人形でも結果には影響しません。重要なのは移動時間と2人の位置です。この2つは、問題を解くのに必要な要素になります。

関係する要素をもとにモデルをつくる

移動時間と2人の位置の関係性を式で考えてみましょう。移動時間をt分とし、t分間移動した後の太郎くんと次郎くんの位置を式で表します。

太郎くんがt分間に歩く距離は55tメートルで駅から戻ってくるので、家からは(1000-55t)メートルの位置にいます。

次郎くんがt分間に歩く距離は45tメートルなので、家から(45t)メートルの位置にいます。

整理すると

  • 太郎くんの位置 = 1000-55t
  • 次郎くんの位置 = 45t

ここまで考えたことで、時間と太郎くんの位置の関係、時間と次郎くんの位置の関係の数式ができました。これが数式モデルになります。

シミュレーション

ここまでは2番目の解法「1次方程式」と、変数が違うだけで全く同じ式です。解き方が異なるのはここからです。1次方程式では、2人の位置が等しくなることを使って 1000-55t = 45t という式を導いて移動時間tを求めました。

一方、3番目の解法「実際に歩いてみて確かめる」というのは、この数式モデルを用いて2人の位置を計算してみることになります。移動時間tに0.5分間、1分間、1.5分間…などを代入して2人の位置を求めます。そうすると、それぞれの移動時間が経過したときの太郎くんと次郎くんの位置がわかります。計算した位置に、実際に人形を置いたり、コンピュータを用いて画像として表示すると、よりシミュレーションしている感じになります。

この計算を実際に繰り返しやってみると、手間がかかり面倒です。ということで、コンピュータを使って計算してみましょう。

小学校の旅人算や鶴亀算などの文章題は、モデル化とシミュレーションの練習に適していると思います。算数の問題集は手に入りやすく、答えがついているので答え合わせも簡単にできるので、練習問題としておすすめです。

長くなったので、今日はここまで。続きは、またいつか。

この記事を書いた人
春日井 優

高校で情報科という教科を担当しています。以前は数学科も担当していました。(今でも数学科の教員免許状は有効です。)プログラムを覚えたのは、「ゲームセンターあらし」という漫画のキャラクターがBASICを解説する「こんにちはマイコン」を読んだことがきっかけでした。

Posted by kasugai