2021/02/13

4. めんどうなことはしたくないが

よんすうパズルになれてきましたか?

ひらめきでわかるときは楽しいが、むずかしい数の列だとチョットたいへん。
最後の計算から考え始めて、すぐにわかれば、大進歩。
少しむずかしい問題も解けるようになった。

でも、かなり難しい問題は、最後の計算から、場合分けをしながら、
順番に考えるのはたいへんめんどう。

めんどうなときに、なんとか楽できないかと考えてきたのが人の歴史。
なんとかさぼりたい。

あきらめるのも一つの方法。
でも、あきらめたくない。ではどうする。

教えてもらうのも方法。
最近は手軽に計算機が使えるようになってきたので、
プログラムを書いて計算機に答えを教えてもらう。
プログラムを書くのもめんどうだけど、その先に楽が待っている。

実は、みんな考えることは同じ。
「テンパズル プログラム」で検索をすると、
たくさんの人がプログラムを作って公開しているようだ。

プログラムは、計算機に
 どの順番でどのように調べるか
を伝える手紙。

よんすうパズルを解く方法として、
最後の計算から考える方法をすでに知っているので、
それを計算機がわかる言葉にすればよいのだが。

小学校でもプログラミングの勉強が始まったそうな。
スクラッチでプログラムを書いたことはあるかな。

最初から難しいことはできないので、
まずは、簡単だけどめんどうなことを計算機にしてもらおう。

前に、
「4桁の数は全部で1万個ありますね。
 でも、その中の数字を小さい順に並べてできる数は、
 なんと 715 個しかありません。」
と書いた。

プログラミングの手始めとして、
715個であることを計算機に調べてもらおう。

準備は大人に手伝ってもらうとよい。
0. まず、計算機のブラウザで「スクラッチ」を検索するか
 https://scratch.mit.edu にアクセスする。
1. 画面の左上に「作る」があるのでクリックする。
2. 画面の左上に🌐ボタンがあるのでクリックし、
 「日本語」か「にほんご」を選ぶ。
 「にほんご」を選ぶと、説明がひらがなやカタカナで表示される。
3. チュートリアルの画面が出ているときは「とじる」をクリック。
4. 左中頃の「へんすう」をクリック。
5. 「へんすうをつくる」をクリックし、
 あたらしいへんすうのせつめい:の下の枠内に、
 数をどこまで数えたか覚えておく場所の名前を書く。
 自分で好きな名前をつけることができる。
 たとえば、「n」 とか、「i」 とか、「カウンター」とかを書く。
 長い名前だと打ち込むのが大変、
 「n」 みたいに短いと後で見たときに、
 何を覚えている場所かわからなくなるけど、打ち込むのは楽。
 名前を打ち込んだら「すべてのスプライトよう」を選び、OKをクリック。
6. 「へんすうをつくる」をクリックし、
 一の位の数の数をしまう場所のための へんすう をつくる。
 「一位」でも、「n1」、「a」でも名前は自由。
 十の位の数、百の位の数、千の位の数の変数も作ろう。
 次の図は 
  千の位の数用の変数を「a」、百の位の数用の変数を「b」、
  十の位の数用の変数を「c」、一の位の数用の変数を「d」
 としたときの画面。


7. 画面、右上の変数をマウスでドラッグして、
 千の位の a が左端に、その横にb, c, d が並ぶように、
 カウンターがこれらの下にくるように移動しよう。


8. 準備ができたので、まず 0000、0001、・・・ 、 0009 を数えてみよう。
9. 出来上がったプログラムを動かすときは、緑の旗をクリックする。
 このためには、左側のイベントをクリックし、「旗が押されたとき」を
 真ん中の場所にドラッグし、プログラムの先頭にする。
10. 数を数えるので、カウンターの値を 0 にしておく。
 このために、左側のへんすうをクリックし、「□を○にする」をドラッグし、
 「旗が押されたとき」の下につける。
 そして、□を「カウンター」に、○を「0」に。


11. 一の位は d に覚えさせていた。
 そこで、d を 0 から 一つずつ増やしながら 9 まで、カウントしながら繰り返す。
 つまり
  i. まずは d を 0 とし、
  ii. d が 9 より大きくなるまで以下 iii-vi を繰り返す。
  iii. カウンターを一つ増やす。
  iv. 動作の確認をするために、猫が鳴く。
  v. 1秒待つ。
  vi. d を一つ増やす。
 これをスクラッチ語に翻訳すると、以下のようになる。

 i. 左側の へんすう をクリックし、「□を○にする」をドラッグし、
  「カウンターを 0 にする」の下につける。
  そして、□を d に、○を 0 に。
 ii. 左側の せいぎょ をクリックし、「<六角形> までくりかえす 」をドラッグし、
  「d を 0 にする」の下につける。
  そして、左側の えんざん をクリックし、緑色の六角形「○ > ○」 をドラッグし、
  「<六角形> までくりかえす 」の <六角形> の位置にはめる。
  この中の 黄土色の d は へんすう からドラッグ、9 は打ち込み。
 iii. 左側の へんすう をクリックし、「□を○ずつかえる」をドラッグし、
  「d > 9 までくりかえす」の下につける。
  そして、□を カウンター に、○を 1 に。
 iv. 左側の おと をクリックし、「○ のおとをならす」を
  「カウンターを 1 ずつかえる」の下につける。
  ○には ニャー が選択されているのでそのまま。
 v. 左側の せいぎょ をクリックし、「○ びょうまつ」を
  「ニャー のおとをならす」の下につける。
  ○には 1 が入っているのでそのまま。
 vi. 左側の へんすう をクリックし、「□を○ずつかえる」をドラッグし、
  「1 びょうまつ」の下につける。そして、□を d に、○を 1 に。
12. 緑の旗をクリックするとプログラムが動作する。
 d が 0 のとき、カウンターが 1 となり、猫が鳴き、1秒おやすみ、
 d が 1 となり、カウンターが 2、猫が鳴き、1秒おやすみ
 これを繰り返して
 d が 9 となり、カウンターが 10、猫が鳴き、1秒おやすみ
 d が 10 となったので繰り返しは終了。
 カウンターに d が 0 から 9 までの個数 10 が蓄えられている。
13. つぎは、0000 から 0099 まで数えてみよう。
 c を 0 から 9 まで変えて繰り返すが、
 c のそれぞれの値に対して、d を 0 から 9 まで変えて繰り返す。

 まず、d についての繰り返しの部分を以下のように外し、
 c についての繰り返しを作る。


 ここでは猫の鳴き声をやめ、休みを 0.2 秒にした。
 d の繰り返しの部分を「c を 1 ずつ変える」の上に入れる。


14. では、0000 から 9999 まで数えてみよう。これは宿題。
15. 0000 から 9999 までの数で、
 右となりの数字が同じか大きくなっている数を数えるのは
 どのようにしたらよいだろうか。これも宿題。
 (ヒント:2桁で紙に書いてやってみる。
   00, 01, ..., 09, 10, 11, 12, ..., 19, 20, 21, 22, ..., 98, 99)

よんすうパズル 今週の問題

a. 1446
b. 1578
c. 2577
d. 3789
e. 3344

f. 1356
g. 1479
h. 2344
i. 4689
j. 4478




0 件のコメント:

コメントを投稿

20. 円錐の半分?

17-19 で三角形、四角形の面積を半分にする問題を解いた。 今回は円錐を半分にする実験をしてみよう。 まず、円錐を作るための図形をスクラッチで描いてみた。 プログラムはここ。 https://scratch.mit.edu/projects/561804896 これを実行すると...