こどもとアルゴリズム 意外と盛り上がるバイナリサーチでこどもと遊ぼう

アルゴリズム、なんだかとっつきにくいですよね。数学できないし(いや、数学とも少し違うか)。
バイナリサーチで少し子供と遊んでみました。

この記事はこんな人にオススメ
  • アルゴリズムに興味がある人
  • 子供との少し知的な遊びをしたい人

この記事を書いているGeorge(父)は、都内在住サラリーマン(妻1人子供3人)。上の子二人があまり遊んでくれなくなり寂しさ感じるこの頃。唯一遊んでくれる末っ子と戯れるのが癒しになっている普通の父親です。

\ それではいってみましょう /

George(父)

おもしろい手品教えてあげる

ほげっ?!

George(父)

1〜100までの数字で好きな数字をお父さんに見えないようにこの紙に書いて。7回だけ質問に答えてくれたら当ててみせよう。

おもしろそう。勝負勝負!
紙に書いたよ(”8”っと)。

George(父)

質問1回目ね。50より大きい?

No!

George(父)

質問2回目ね。25より大きい?

No!

George(父)

質問3回目ね。12より大きい?

No!

George(父)

質問4回目ね。6より大きい?

Yes!

George(父)

じゃあ質問5回目ね。9より大きい?

No!

George(父)

質問6回目ね。8かな?

正解!!!
すごっ!なんでなんで??

目次

バイナリサーチ(二分探索)とはなんでしょうか

娘と遊んだこの手品は、大きい順とか、あいうえお順に整理されたリストから特定の要素を効率的に探し当てるアルゴリズム。

1から順番に数を当てにいくと最悪の場合100回の質問(=探索)が必要になりますが、このアルゴリズムを使えば、最大でもたった7回で済みます。

下は1〜11の中から4を探索する時のイメージです。

二分探索のイメージ -George(父)作成-
George(父)

二分探索はとってもシンプルだけど、ログインする際のID、パスワードの照合や検索サービスなんかにも使われていて、世の中になくてはならないアルゴリズムだよ

ちなみに、リストの数が1024個の場合は10回、1,000,000個でも20回の探索で目当ての要素を取り出すことができます。

この遊びを中1長男ともやったのですが、小数を指定してきやがりました。

割り算を覚えたての小学校低学年くらいまでの子供と遊ぶのが良さそうです。

けー(中1長男)

けけけ…
最後まで読んでくれて、ありがとうございました〜

子供がアルゴリズムに興味をもったら(そうそう持たないと思いますが…)、こちらの本がわかりやすくてオススメです。Pythonのお勉強にもなります。

この記事が気に入ったら
フォローしてね!

この記事を書いた人

40代都内サラリーマン🧑‍💼 妻1人、子供3人の父
新しいもの好きで飽きっぽい性格。人生とことん楽しむために、仕事も頑張る
座右の銘は「知らぬが仏、忘れるが勝ち」
↓このあたりをテーマに不定期に配信します
読書、家庭菜園、家族、Python、機械学習、筋トレ

目次