自分の人生に関係ないと思っていた割り算がプログラミングの世界ではとても重要:エクセル親子ゲームで学ぶ“コンピュータっぽい考え方”(5)(4/4 ページ)
本連載では、書籍『子どもの“プログラミング的思考”をグングン伸ばす本』の中から、特に、Excelの機能を使って作ったゲーム(VBAではない)を通じて、コンピュータがどう考えているのかを学べる章を厳選して転載する。「Excelの機能を使う」こと自体も「プログラミング」に通じていることを体感してほしい。今回も、プログラミングで重要となる「数」について。
「おわりに」を書こうとしたら、ダイゴ君に話しかけているお父さんの声が聞こえてきました。どうやらクイズを出しているようです。
?マークに入る数字は何かというクイズらしいですよ。みなさんならおわかりでしょう。
ダイゴ君もわかったようです。答えは「2」ですね。
数字の並びに規則性を見いだせるかどうかの問題ですね。みなさんやダイゴ君は「0」「1」「2」が周期的に並んでいることを理解したのです。答えを出すまでには頭の中で色々な仮説を立てては検証作業をしているのですが、人間の頭脳はかなり優秀で、それを無意識に近い状態で行ったり、瞬時に行ったりしているので、自分自身でもその過程をいちいち詳しく覚えてはいません。その結果、ひらめきのような形で答えを導き出してしまうのです。
おや、お父さんがダイゴ君に話しかけていますよ。
「それでは、これらの数字が規則的にずっと続いているとして、左から1000番目の数字は何かわかるかな?」
どうですか? みなさんはどう考えますか?
このような問いを投げかけられると人間は意識して考えるようになります。
なぜなら、目の前の数字だけ見つめていても答えがわからないからです。かといって、1000番目まで数字を書き続けるだけの根気も出てきませんよね。
さて、連続した3つの数字が周期的に繰り返されていることに着目しましょう。こんなときは1から始まる整数をそれぞれ3で割ってみるのです。
何か気づいたのではないでしょうか。
そうです。3で割った余りに注目してください。どんな数字でも、余りは0か、1か、2となります。これらの数字は余りが表示されているのです。
ただし、お父さんの問題の数字は、0から始まっていますね。つまり、1ずれているのです。従って、例えば左から1番目の数字は、1から1を引いた数0を3で割った時の余りなのです。ちょっとだけ数学っぽく言うと、「左からn番目の数字は、n-1を3で割った余りである」ということになります。
数字が周期的に並んでいるときは、割り算を使うと答えがわかるのです。プログラミングの世界では、割り算はとても重要なのです。
お父さんがダイゴ君に話しています。お父さんの言葉を、「おわりに」の言葉にしましょう。
「自分の人生に関係ないと思っていた割り算がプログラミングの世界ではとても重要であるように、僕らが勉強していることは、きっとどこかで役に立つんだよ。だから、いろんなことを吸収していこうね」
書籍紹介
子どもの“プログラミング的思考”をグングン伸ばす本
横山達大著
秀和システム 1,700円
お父さん、お子さんを頭のいい子に育てたいなら、小学生の今がチャンスです! 本書は、お父さんが仕事に使う表計算ソフトのエクセルを使って、お子さんを「頭のいい子」に育てる子供向けプログラミング思考育成の入門書です。エクセルを使った12種類のゲームで、親子で楽しくプログラミング的思考を学び、考えることや、プログラミングの楽しさを体験しましょう! エクセルゲームの無料サンプルダウンロードサービス付き。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelの配列数式で合計を一発で計算する方法
見積表などの合計を一発で計算できる「配列数式」をマスターしよう。これを覚えておくと、1行置きに合計を計算するといった技も使える。本稿では、「配列数式」の基本的な使い方を紹介する。 - Excelで関数を使わずに、素早く合計値などを確認する
Excelのシートでは、関数を使って複数セルの値の合計、平均値などを算出できる。しかし作業途中で一時的に一部のセルを加算したりする場合、関数を使うのは面倒である。ちょっとしたセルの合計や平均値ならば、ステータス・バーの一部で確認できる。 - Excelで数値の合計に役立つ3つのワークシート関数SUMIF、SUMIFS、SUMPRODUCTの使い方
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、引数で指定したセル範囲の数値を、条件付きで合計するSUMIF、同じく複数条件を使えるSUMIFS、配列内の積を計算し、それを合計するSUMPRODUCTについて、VBAでの使い方を解説。