見出し画像

小学5年生が理解する「誤り訂正符号」(デジタル社会を支えるテクノロジー:誤り訂正符号って何?その3)

息子が私の仕事のことを聞いてきた日から3日目

息子:「ねえねえ。昨日の話の続きは?まだ、肝心の『誤り訂正符号』のこと聞けてないんだけど。」

私:「おっ!珍しいね〜。こんなに続くの。」

息子:「だってさー、肝心な話しがまだじゃん!」

私:「まーそうだね。じゃー昨日の話しの続きをしよう。昨日はデジタルの基本の話しをしたね。」

息子:「したねー。いつも使ってる数は10進数でデジタルでは2進数って数を使うんだよね。」

私:「おっ!よく覚えてるね。」

息子:「まぁね。自分で考えたからね。」

私:「だろぅー♪ただ人に教えてもらうとその場ではわかった気になるんだけど、実はきちんとは理解できてないんだ。そしてすぐに忘れる。だけど、自分で考える、つまり自分でやってみると、きちんと理解できるんだ。そして、なかなか忘れなくなる。」

息子:「うん。今、わかった気がする。」

私:「そう。そういうコトを増やしていくことがこれからどんどん大切になっていくんだ。タクムがこれから先、中学生、高校生に進むとますます大切で、その後、就職、もしくは何かやりたいことが決まって専門学校に進んで就職、あるいはもっといろいろと学びたいのであれば大学に行って就職となると思うけど、いずれにしても自分で考えないと何も身に付かない。」

息子:「うん。よくわかんないけど、自分で考える、自分でやってみないと分かったことにならないんだね。」

私:「そういうこと。聞いてわかったと思ってる時は、まだ半分ぐらいしか分かったことにならない、自分で考えて、自分でやってできて7割ぐらい、70%ぐらいわかる。そして、他の人にきちんと説明できてはじめて10割、つまり100%わかったこと、理解できたと言える。だから、誰かが教えて欲しいと言ってきたら理解を深めるチャンスだから、積極的に教えよう。」

息子:「ふーん。そうなんだ。機会があったら、そうしてみる。」

私:「忘れないでね。前置きが長くなった。それでは続きの話しをしようか。昨日、2進数の話しをした時、昨日は2進数で3桁までで、10進数の0から7までを表せることを確かめたね。2進数で最大で3桁だと10進数の0から7を表せるけど、10進数の8以上の数を2進数で表すにはどうしたら良いかな?」

息子:「うーん…桁をもっと増やす!!」

私:「ナイスアイデアだね!タクムちゃん!!」

息子:「まぁね〜!いつも使っている数、えっと…10進数で3桁で1番大きい数の999よりも大きい数は1000で、この時に4桁以上に桁を増やすから。」

私:「その通り!正解!いいねー。自分で考えてるねー。桁を増やせば、より大きな数を表せるんだね。いつも普通に使っている数、10進数では桁と言うけど、2進数では桁を『ビット』と言う。英語ではbinary digit(バイナリー・デジット)という2つの単語のそれぞれの一部を組み合わせて作った単語なんだ。」

息子:「へー。パソコンで32ビットとか、64ビットとか聞くけど関係ある?」

私:「いいところに気がついたね!そうパソコンの32ビットとか64ビットはまさに関係するね。パソコンのビット数は計算をする時に一度に扱える数の大きさを言ってるんだ。パソコンではCPUというパソコンの脳みそで計算をするんだけど、そのCPUのビット数のことを言ってるんだ。パパが小学生の頃、興味を持ち始めた時は8ビットが出た頃だったなー。」

息子:「そんな少ない数だったんだね。」

私:「何でも最初の頃はそんなもんだよ。そこから、段々と進歩してくんだ。人の成長と同じだね。最初のCPUは4ビット、次に8ビット、16ビット、32ビット、そして64ビットに増えてきている。ちなみに8ビットをひとまとめにして1バイト言う。」

息子:「ふーん。」

私:「前置きが長くなってしまったけど、ビットがわかったので『誤り訂正符号』の符号の話しに戻ろう。でも『誤り訂正符号』の前に、間違ったビットが有るか、無いかがわかる『誤り検出符号』を考えてみよう。」

息子:「なんで『誤り訂正符号』じゃなくて『誤り検出符号』からなの?」

私:「それはね。データに誤りが無い場合はどうすれば良いか考えれば、すぐに分かると思うよ。」

息子:「うーん…あっ!直さないで済むから、訂正しないで済むから!?」

私:「正解!送られてきたデジタルのデータに誤りが無いって分かれば訂正しないで済むからだね。調子が上がってきたね。それに『誤り検出符号』の方が分かりやすく理解しやすいからなんだ。」

息子:「ふーん。」

私:「それでは簡単な『誤り検出符号』を紹介しよう。1ビットの数を送り(記録し)たい時に、同じ数を2ビットで送る(記録)する。つまり、0を送りたい(記録する)時に00を送り(記録し)、1を送り(記録し)たい時に11を送る(記録する)。これだけ。」

息子:「それだけ?それだけでデータが間違ったか、誤ったか分かるの?」

私:「少し考えれば分かる。00か11しか送られて(記録されて)ないんだよね。受け取る(再生する)人は00か11しか受け取らないはず。」

息子:「うーん…00とか11を受け取った時は間違い無い、つまり誤り無し。で、01とか10を受け取った場合はどちらかが間違ってる、つまり誤りが有るってことかな?」

私:「正解!簡単だろ?」

息子:「うーん…イマイチ。」

私:「うーん、そうだな。例えばさー、タクムが学校で休み時間に周りがうるさい時にある友達に話しかける時どうしてる?」

息子:「…名前を何回か呼ぶ。」

私:「そう!名前を1ビットと考えるとどうかな?」

息子:「あっ!そうか!同じ言葉を繰り返してるのが同じだ!」

私:「そう、同じ言葉、または数を繰り返してるだけなんだ。パパが会社で電話を受けて、職場の誰かにかかってきた時にも、やっぱりその人の名前を繰り返して呼ぶ。これは、皆んな仕事をしてる時に間違い無く相手に名前を知らせるためなんだ。」

息子:「うんうん、そうしてるね。」

私:「こういう考え方が1番簡単な『誤り検出符号』や『誤り訂正符号』の考え方で、こういうのを『繰り返し符号』って言うんだ。これでタクムはひとつ『誤り訂正符号』を知ったことになる。」

息子:「えっ!?そうにゃの?」

私:「そうだよ。今日は前置きが長くなってしまったけど、『誤り訂正符号』の入口の話しができたね。次は、この考え方をもう少し考えてみよう。」


この記事が気に入ったらサポートをしてみませんか?