1 数学語は便利!
先週は、スクラッチで数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 の数を数えた。
数えなくても 10 個あることは分かっているが、
スクラッチのプログラム
は次のように数字の数を数えていた。 d: 0 1 2 3 4 5 6 7 8 9 10
個数: 1 1 1 1 1 1 1 1 1 1
カウンター:0 1 2 3 4 5 6 7 8 9 10
スクラッチのこのプログラムを実行すると、上に書いたように、
まじめに一つひとつ数える。
しかし、数学ではそんなめんどうなことはしない。
めんどうなことをせずに済ますために、ちょっとめんどうな準備をする。
「10 個の 1 を足し算すれば 10 になる」ことは分かっている。
変数 n を使って一般的に書くと、「n 個の 1 を足し算すれば n になる」。
である。
n がどんな数でも n 回の足し算をせずに、この和は n である。
そこで公式として
上のプログラムで、
d を 0 にする
を
d を 4 にする
に変えるとどうなるだろうか。
d: 4 5 6 7 8 9 10
個数: 1 1 1 1 1 1
カウンター:0 1 2 3 4 5 6
このときは、4 から 9 までを一つひとつ数えて 6 個になる。
数式では
のように和が得られる。
変数 c を使って、c から 9 までの個数は
と書くことができる。
2. 2桁の数で、右となりの数字が同じか大きくなっている数の個数
先週、「13. つぎは、0000 から 0099 まで数えてみよう。」 で
次のスクラッチのプログラムを示した。
これを分解すると次のようになる。
中央の d の繰り返しの 「1 という」の部分にその右の 「カウンターを 1 ずつ変える」の
ブロックが入り、数式では
左の c の繰り返しの「d の繰り返し結果 と言う」の部分に中央のブロックを入れると、
数式では
このプログラムの中の「d を 0 にする」を 「d を c にする」に変える。
これは次のように動作する。
d 0 1 2 3 4 5 6 7 8 9 10 カウンター
c 0
0 1 1 1 1 1 1 1 1 1 1 (=10) 10
1 1 1 1 1 1 1 1 1 1 (= 9) 19
2 1 1 1 1 1 1 1 1 (= 8) 27
3 1 1 1 1 1 1 1 (= 7) 34
4 1 1 1 1 1 1 (= 6) 40
5 1 1 1 1 1 (= 5) 45
6 1 1 1 1 (= 4) 49
7 1 1 1 (= 3) 52
8 1 1 (= 2) 54
9 1 (= 1) 55
このスクラッチのプログラムは、この和を一つひとつ数えている。
であったので、d についての繰り返しの部分は、
「カウンターを 10-c ずつ変える」に置き換え、
とすることができる。 これを数式で書くと、
と表される。
これは 1 から 10 までの数を一つひとつ足し算をすることを表しているが、
足し算をせずに以下のように考えることができる。
n が大きな数のときは、スクラッチのプログラムでは大変時間がかかるが、
数学の公式を使うと楽に和を求めることができる。
めんどうなことはしたくない。数学は便利だなあ。
3. よんすうパズルを出題するスクラッチのプログラム
スクラッチの乱数を生成する機能を使うと、
よんすうパズルの問題を作ることができる。
実行画面の上のほうに a, b, c, d を左から横1列に並べる。
その下に t を置く。
どのように解いたかをプログラムに知らせることはできない。
合っているか違っているかの判定もできない。
解がわからないときの正解例を表示することももちろんできない。
でも、切符や、自動車を見なくても、よんすうパズルを楽しむことができる。
このプログラムを少し変えたものを、スクラッチのホームページ上に共有で公開した。
4. おまけ
どのように解いたかをプログラムに知らせ、
合っているか違っているかを判定する
スクラッチのプログラム yonsu-puzzle を作成した。
これは、正解例を表示することはもちろんできない。
スクラッチのホームページ上に共有で公開した。
0 件のコメント:
コメントを投稿