電卓のまわりにいろんな数字の立体像がおいてあるイラスト

今回は小学校低学年向けの「電卓で遊ぶ文字列変身!」。数字を「数」ではなく「文字列」つまり記号の羅列として見たときの簡単な遊び方を紹介します。小学校低学年の息子にウケました。

息子は小学1年生。毎日楽しく学校に通っていますが、わたしとしては小学1年生の学習内容に興味深々。例えば算数では、すでに数や順序数、足し算や引き算の式までカバーしています。「数える」という最も根本的な数学技能を通して、息子の世界観が広がっていくのは興味深いものです。

さて、私の机に転がっていた電卓を見つけた息子、0から9までの数字や+、-など見覚えのあるキーがあるのに気づいて遊び始めました。学校で習った足し算や引き算の式を入力してみると正しい答えが出てくるので、楽しくてゲラゲラ笑いながら遊び続けています。

それを見たコンピュータサイエンティスト(コンピュータ科学者)のわたし。コンピュータという「情報機械」の唯一の機能ともいえる「文字列変換」を、電卓遊びを通して体験させようと思い立ちました。今回の記事は、小学1年生にも楽しめる(というか、小学1年生だからこそ楽しめる?)簡単な電卓遊びを紹介します。

今回紹介する電卓遊びは、以下の書籍を参考に考えたものです。

コンピュータと文字列変換

コンピュータは、情報を動かし、情報によって動かされる「情報機械」。しかしコンピュータはデータの「意味」を扱うことはできません。「意味」というのは人間の頭の中にしかないもの。コンピュータはどんなデータも単なる「記号の羅列」、しかも「0と1の羅列」として平等に扱うだけ。そのような羅列を、決まった規則に従って書き換えるだけで、いろんな機能を実現しています。

さて、電卓は計算を行うためのものですが、実際にはこれも記号の羅列を、規則にしたがって別の羅列に変換しているだけのもの。それがたまたま(?)人間にとって意味のある、数の計算に一致するように作ってあるのです。

しかし今回は「数の意味」は忘れて、単なる文字列の変換で遊んでみましょう。

文字列変換の電卓遊び1:「11111111」を変身させよう

「11111111」を「22222222」に変換する2通りのやり方。まずは「11111111」を足すやり方、そして2で掛け算するやり方。「99999999」に変換する方法も同様に、足し算によるものと、掛け算による方法がある。

まずは「11111111」を「22222222」や「99999999」に変身させてみましょう

まずは「1」が8つ並んだ文字列である「11111111」を変身させて遊んでみましょう。ここで大人は「11111111」を「いっせんひゃくまんせんひゃくじゅういち」という数と解釈してしまうかもしれませんが、それはやめましょう。コンピュータはそんなことは知りません。そんな大きな数は知らない小学1年生のころに戻って、単なる文字列だと思ってください。

まずは文字列変身その1。「11111111」を「22222222」に変身させてみましょう。これには少なくとも2つの簡単な方法があります。お子さんにやり方を教えて、自分で電卓操作してもらうとよいと思います。

  • 遊び方①:「11111111+11111111=22222222」
  • 遊び方②:「11111111*2=22222222」

全く違う電卓操作なのに、どちらも「11111111」を「22222222」に変身させることができます!お子さんと一緒に驚き、不思議がりましょう。

ここで「足し算」や「掛け算」の説明をしてはいけません。それは「意味」に関するものだからです。ただ文字列変身の楽しさを体験しましょう。

文字列変身その2として、上図では、「11111111」を「99999999」に変身させる遊び方③と遊び方④も挙げています。このように、いろんなパターンが簡単に考えられるはずです。大人には当然でも、子どもには不思議で楽しいこと。物事を不思議だと思う好奇心を養う機会です!一緒になって、大いに遊びましょう。

文字列変換の電卓遊び2:面白い文字列を、文字列変換で作ってみよう

「12121212」を作るには、「6060606」を2倍するやり方や、「2020202」を6倍するやり方がある。「123456789」を8倍すると「987654312」になるが、求める文字列とちょっと違うので残念。

次に、「12121212」や「987654321」を作る遊びです。数字を直接打ち込むのではなく、ほかの文字列を変換して面白いパターンを作る楽しみを体験しましょう。

次の文字列変身遊びでは、パターンのある面白い文字列を作ってみます。まずは「12121212」。数字を打ち込んでも作れますが、それは面白くない。別の面白い文字列からこれを作ることはできるでしょうか。これには少なくとも2つの方法が考えられます。

  • 遊び方⑤:「6060606*2=12121212」
  • 遊び方⑥:「2020202*6=12121212」

大人には、これがどういう考え方でできているかわかりますね。でも子どもにそれを説明する必要はないでしょう。同じ数字からできた文字列だけでなくて、「12121212」 のような2つの数字の繰り返しパターンも、別のパターンの文字列から作れるということを体験してみれば十分です。

それでは、繰り返しのない文字列で思いつく「987654321」、これを作れるかどうかやってみましょう。

  • 遊び方⑦:「123456789*8=987654312」

不思議なことに、順序良く数字がならんだ「123456789」から作れるようです。。。というのは実は間違い。最後の二ケタが求める文字列と合っていないですね。でも惜しいです。「できるかな。。。あっできた!いや、できなかった!」と大げさに驚いて、お子さんと一緒に楽しみましょう。

文字列変換の電卓遊び3:12345678987654321を作る

111111111*111111111=12345678987654321。しかし普通の電卓では桁数が足りないかもしれません。そういう場合は、桁数を減らして試してください。例えば11111*11111=123454321。11*11=121。不思議なパターンですが、これは筆算してみるとその理由がわかります。

数字がきれいにならんだ「12345678987654321」。なんと、これは「1」の羅列だけを使って作れるのです。やってみてください。

それではさらに不思議なパターン、「12345678987654321」。すべての数字が、お行儀よく並んでいますね。実はこの文字列は、数字の1だけで作れるのです。ぜひやってみてください!

  • 遊び方⑧:111111111*111111111=12345678987654321

全ての数字が大きさ順に並んでいる文字列が、1だけで作れるというのは不思議です。なぜこうなるかは、筆算で計算してみるとわかると思います。でもそれを小学1年生に説明する必要はまったくないです。

なお、遊び方⑧では、通常の電卓では桁数が足りなくて結果がよくわからなくなると思います。そういうときは、桁数を減らして試してみてください。

  • 遊び方⑨:11111111*11111111=123456787654321
  • 遊び方⑩:11111*11111=123454321
  • 遊び方⑪:11*11=121

で、これで何の意味があるのか?

いいじゃないですか、意味なんてなくったって。。。と言ってしまうこともできますが、ちょっと真面目に考えてみましょう。

小学校の算数から始まって、中学校、高校、大学まで続く数学教育。でも、そこでは数は常に数です。意味を持っています。(大学や大学院級の数学になると、すべての数式を単なる記号の羅列として扱うものも出てきます。コンピュータの基礎理論もその一つです。)

でも、コンピュータサイエンスやプログラミングは違います。例えば画像データ。これはコンピュータの中では1と0でできた2進数として表現されていますが、実際にはそれは数としての意味を持っていません。その画像を拡大したり色を明るくしたりするアプリもありますが、それは全て1と0でできた文字列を変換しているだけなのです。画像データだけではなく、あなたの銀行口座番号や残高、住所や氏名や年齢、すべてはコンピュータから見ると0と1の羅列です。

コンピュータとプログラミングを理解するには、そんな「文字列変換の世界」を理解することが不可欠です。でも、それを体験したり教えてもらったりするのは、今の学校教育ではなかなかありません。

だから、いいじゃないですか。時にはお子さんと一緒に、簡単な文字列変換を体験してみましょう。そして、「数字を数としてではなく、単なる記号として扱う世界もある」ということが、うっすらと頭に残ればいいと思いますし、何よりあなたとお子さんが楽しいひと時を過ごせたというだけで、十分価値のある体験だと思います。

ホーム画面に戻るにはこのリンク

関連記事:

(かながわグローバルIT研究所 森岡剛)