上級その3

こんにちは!このページは「コンピュータサイエンスと魔法のYコンビネータ」という記事の15ページ目です。1ページ目から読むにはこちらからどうぞ

コンピュータサイエンスと
魔法のYコンビネータ

上級その4: 魔法のYコンビネータ

スライド 1 / 11

最も複雑な弁当箱が登場

今回は、今までで最も複雑な弁当箱が登場します。

最も複雑な弁当箱が登場します

しかしいつも通り、内容を完全に理解する必要はありません。少しくらい分からなくても、雰囲気で読み進めていただいて大丈夫です。

完全に理解する必要はありません!

他のページをお探しですか?

上級その3·
·上級その5
スライド 2 / 11

前回では…

前回は、計算箱の「繰り返しの機能 」を、サヤちゃんが考えた弁当箱で再現できるかも?というところで終わりました。

この「繰り返しの機能 」を使った計算箱は…
以下の弁当箱で再現できている?
2
1
1234
4
3
2
1
12
1
12
2
1
1
12
2
1

サヤちゃんの弁当箱は、前回実行 してみると になりました。

つまり、「繰り返しの機能 」を使った場合と同じように、 を計算できているかのように見えます。

実行すると…
2
1
1234
4
3
2
1
12
1
12
2
1
1
12
2
1
になる。ということは
を計算できている?

今回は、本当にこの弁当箱が「繰り返しの機能 」を再現できたのか検証していきましょう!

スライド 3 / 11

途中で何が起きているのか?

今回は、前回サヤが考えた弁当箱を早送り して、途中、弁当箱がどう変化するかを確認してみるよ。

そうすることで、どいうった経緯で最終的に になるのかを知ることができるからね。

前回の弁当箱は、早送り すると…
2
1
1234
4
3
2
1
12
1
12
2
1
1
12
2
1
途中、弁当箱がどう変化した後…
最終的に になるのか?

なるほど、早送りをすることで、途中で何が起きているか確かめてみようってことだね。

それじゃあ、早送りしてみよう!

スライド 4 / 11

早送りしてみる

というわけで、早送り を押してみて

  • 弁当箱の中身がたくさんあるので、スペースの都合上、ひとつひとつの料理を小さく表示しているよ。見にくくてごめん!
  • 説明のために、何度も止めながらやっていくよ。
  • 複雑なので、目で追わなくても大丈夫だよ!
  • ちょっと時間がかかるので、待てない方は下の「途中までスキップ」を押してね!
2
1
1234
4
3
2
1
12
1
12
2
1
1
12
2
1

めちゃくちゃ複雑だなあ…

でもちょっと立ち止まって考えてみて。まず、この真ん中の黄色で示した部分に注目してくれる?

真ん中の黄色の部分に注目
1245
5
3
12
2
1
1234
4
3
2
1
34
12
2
1
1234
4
3
2
1
2
1

上の黄色の部分が複雑なので、分かりやすくするために、そこだけを のアイコンに置き換えて省略してみると、下のようになるよ。

先ほどの弁当箱の黄色の部分
と置き換えて省略した
1234
4
3
2
1

この時点で、

  • には が入っている

…ということを覚えておいてね。

には が入っている
1234
4
3
2
1

ん?なんでそれを覚えておく必要があるんだい?

後で大事になってくるからだよ。

では続きを見てみよう。 には が入っているので、 のほうが残ります。

かどうかチェック
1234
4
3
2
1
ではないので が残ります
1234
4
3
2
1
123
3
2
1
スライド 5 / 11

2周目は…

じゃあ、 を省略する前の状態(黄色の部分)に戻すね。

の部分を…
123
3
2
1
省略前の状態に戻す
134
4
2
12
2
1
1234
4
3
2
1
23
12
2
1
1234
4
3
2
1
1

では、続きを見てみよう!早送り を押してみて

134
4
2
12
2
1
1234
4
3
2
1
23
12
2
1
1234
4
3
2
1
1

あれ…この黄色の部分は、前回省略したのとまったく同じだ!

黄色の部分は、前回省略したのと
まったく同じ
123567
7
6
4
12
2
1
1234
4
3
2
1
45
12
2
1
1234
4
3
2
1
3
2
1

そう、この部分が繰り返されるんだよね。

では、また黄色の部分を のアイコンで省略してみたよ。前回と何が違うかな?

黄色の部分を で省略してみた
123456
6
5
4
3
2
1

前回と比べてみると、下の黄色の部分が違うね!

前回と比べると…
1234
4
3
2
1
黄色の部分が違う
123456
6
5
4
3
2
1

そう。特に注目すべきなのは以下の二点だよ。

  • 先ほど には が入っていたが、今回は が入っている
  • 一番下に が追加されている

ふむふむ… に入っていた数字は、 から に「1減った」というわけか。

が1減った

じゃあもしかしたら、このまま続けたら、次は の数字が になるのかも…?

続けて確かめてみるか。

スライド 6 / 11

3周目は…

再度、 を省略する前の状態に戻したよ。早送り を押してみて

123567
7
6
4
12
2
1
1234
4
3
2
1
45
12
2
1
1234
4
3
2
1
3
2
1

また真ん中の部分が前回と同じなので、 のアイコンで省略してみるね。

黄色の部分は前回と同じなので…
12346789
9
8
7
5
12
2
1
1234
4
3
2
1
56
12
2
1
1234
4
3
2
1
4
3
2
1
また で省略してみた
12345678
8
7
6
5
4
3
2
1

では、前回とまた比べてみよう!

前回と比べると…
123456
6
5
4
3
2
1
黄色の部分が違う
12345678
8
7
6
5
4
3
2
1

特に注目すべきなのは…

  • 先ほど には が入っていたが、今回は が入っている
  • またしても、一番下に が追加されている

なんとなく、パターンが見えてきたかも…

特に、 に入っていた数字は、 から に、 から にと、1ずつ減っているよね。

が1ずつ減っている

ということは、次は になるのかな?

そして、 になると、 ではなく が残るようになるから、繰り返しがストップされるのかも?

では、確かめてみよう!次が最後だよ!

スライド 7 / 11

4周目。これが最後!

これが最後だよ! を省略する前の状態に戻したので、早送り を押してみて

12346789
9
8
7
5
12