上級その1

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

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

上級その2: 条件分岐の再現

スライド 1 / 10

本格的に上級向けになります

このページから、本格的に上級向けになります。前のページに比べて、読むのに時間がかかるかもしれません。

本格的に上級向けになります!

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

上級その1·
·上級その3
スライド 2 / 10

条件分岐の再現

村人たちは与えられたアドバイスをもとに、「条件分岐の機能 」を弁当箱で再現しようとしていました。

条件分岐の機能 」を…
弁当箱で再現できる?

復習すると、上の計算箱は、もし を入れたら下の が残り…

を入れた場合…
に入っている が残る

そして、もし 以外の数字を入れたら、上の が残るんだよな。

以外の数字を入れた場合…
に入っている が残る

これを弁当箱で再現するには、どうすればいいんだろう…?

スライド 3 / 10

サヤちゃんの案

するといつものように、サヤちゃんが何かひらめいたようです。

サヤもちょっと考えてみた!これを見てくれる?

条件分岐の機能 」を…
弁当箱で再現してみた!
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234

なんと!じゃあ、これが本当に再現できてるか、確かめてみよう!

スライド 4 / 10

再現できてるか確かめよう

まず、サヤの弁当箱の一番下の「 に変換できる弁当箱」のところに…

一番下の に変換できる弁当箱に…
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234

こちらの に変換できる弁当箱を入れてみるね。

右下には がついた が「0
→ 計算箱に変換すると になる

入れてみると次のようになるよ。早送り を押してみて

に変換できる弁当箱」のところに、
に変換できる弁当箱を入れてみた
(一番下の黄色の部分)
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
1234

に変換できる弁当箱が残った!

うん、これって「条件分岐の機能 」を使ったときと同じだよね?

条件分岐の機能 」を使った場合:

を入れた場合…
に入っている が残る

サヤの弁当箱を使った場合:

一番下に に変換できる
弁当箱を入れた場合…
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234
が残る
に変換できる弁当箱

たしかに、両方とも を入れると が残るね!

スライド 5 / 10

以外の数字を入れた場合

じゃあ、次は に変換できる弁当箱を に入れてみるね!

右下には がついた が「1
→ 計算箱に変換すると になる
1
1

入れてみると次のようになるよ。早送り を押してみて

に変換できる弁当箱」のところに、
に変換できる弁当箱を入れてみた
(一番下の黄色の部分)
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
1234
1
1

おお、今度は先ほどと逆に、 に変換できる弁当箱が残った!

これも、「条件分岐の機能 」を使ったときと同じだよね?

条件分岐の機能 」を使った場合:

を入れた場合…
に入っている が残る

サヤの弁当箱を使った場合:

一番下に に変換できる
弁当箱を入れた場合…
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234
が残る
に変換できる弁当箱

たしかに、両方とも を入れると が残るね!

スライド 6 / 10

やっぱりサヤちゃんが正解?

とういうことは、やっぱりサヤちゃんの弁当箱が、「条件分岐の機能 」の再現としては正解なのかな?

条件分岐の機能 」を…
サヤちゃんが弁当箱で再現してみた!
果たして、これが正解なのか?
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234

念のため、最終チェックをしたほうがいいかも!

最終チェックだって?

スライド 7 / 10

全てを埋める

いちおう最終チェックとして、

  • の全てを埋めてみて、
  • それをサヤの弁当箱でも再現できるかやってみるよ!

ん?どういうこと?

たとえば、

  • 条件分岐の機能がある計算箱の に、
  • それぞれ を入れた場合…
  • 最終的に が残るよね。
の部分に、
を入れた場合、
ではないので…
に入っていた が残る

では、サヤの弁当箱の にも を入れてみるよ。

これを実行 したとき、先ほど同じく結果が になれば成功 というわけだよね。

サヤの弁当箱の…
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234
(一番上)に を、
(一番下)に を、
(上から二番目)に を入れてみた
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234
に変換できる弁当箱
になれば成功

なるほど。これを実行して計算箱に変換したときに になれば…

サヤちゃんの弁当箱が条件分岐の弁当箱を再現できていると見て間違いないな。

スライド 8 / 10

では確かめてみよう!

では、 にそれぞれ変換できる弁当箱を入れてみたよ。(黄色の部分)

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

  • 複雑なので、目で追わなくても大丈夫だよ!
  • ちょっと時間がかかるので、待てない方は下の「最後までスキップ」を押してね!
黄色の部分は、上から順に
に変換できる弁当箱、
に変換できる弁当箱、
に変換できる弁当箱。
4
1
1
3
123
3
2
1
2
1
1234
12
2
1

最終的に残ったこちらの弁当箱は、 に変換できる弁当箱だね。

右下には がついた が「1
→ 計算箱に変換すると になる
1
1

だから、 が残ったので、成功 です!

やったー、さすがサヤちゃん!

スライド 9 / 10

まとめ

お見事!サヤちゃん、正解です!

サヤちゃんの弁当箱は、「条件分岐の機能 」を再現しています!

条件分岐の機能 」は…
サヤちゃんの弁当箱で
再現できている!
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234

やったー!

ちなみに、以下のような の法則に沿っていれば、それぞれに何の料理が入っていても、条件分岐の機能を再現することができます。

以下の法則に当てはまる弁当箱で
あれば、条件分岐の機能を再現できる
4
に変換できる弁当箱
3
に変換できる弁当箱
2
1
に変換できる弁当箱
1234

まとめると、計算箱の「条件分岐の機能 」も、弁当箱で再現することができるのです。このポイントさえ覚えていただければ、細かいことは分からなくても大丈夫です!

計算箱の「条件分岐の機能 」も、
弁当箱で「再現」することができる
スライド 10 / 10

繰り返しの機能は?

うーん、条件分岐の機能を再現できたのはいいとして…

俺らがやりたいのは、「繰り返しの機能 」を弁当箱で再現することなんだけど…


繰り返す

繰り返す

そうですね。しかし、上級その1でぼくが言ったことを思い出して下さい。

繰り返しの機能 」は、「条件分岐の機能 」と関連があるのです。

繰り返しの機能 」は、
条件分岐の機能 」と関連がある

だから、先ほど「条件分岐の機能 」を弁当箱で再現したことによって、

みなさんは「繰り返しの機能 」を弁当箱で再現するのに大きく近づいたのです。

条件分岐の機能 」を
弁当箱で再現したことにより…
繰り返しの機能 」を
弁当箱で再現するのに大きく近づいた!

うーん…そう言われても、どういうことやらさっぱり…

では、次のページでまたヒントを出しましょう!

というわけで、先に進んでみてください。

次のページへ進む上級その3
上級は残り3ページです!

ひと休みする前に

お願い:長いのでひと休みしよう」とお考えの方にお願いがあります。

差し支えなければ、このページを閉じる前に下のツイートをリツイートしてくださると、宣伝になるので非常に助かります。もしくは、「上級その2までは読み終えた」と引用リツイートしてくださると、さらに励みになります。図々しいお願いで恐縮です。

また、本稿の内容について質問がございましたら、上のツイートにスクリーンショット付きで返信してくだされば最優先で対応します。メール(shu@chibicode.com)でもお答えできますが、返事が遅れる可能性が高いです。

次のページへ進む上級その3
上級は残り3ページです!

著者: 上杉周作 (ブログはこちら)
公開日:
ソースコード: GitHubで公開中

上級その1
プライバシーポリシー · 当サイトについて· Twemoji