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

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

中級その2: ゼロからイチへ

スライド 1 / 9

難易度が急激に上がります

このページから難易度が急激に上がります。弁当箱も、以前に比べて複雑になります。

難易度が上がり、弁当箱も複雑に

ただ、内容を完全に理解する必要はありません。少しくらい分からなくても、雰囲気で読み進めていただいて大丈夫です。また、先に進んでから読み返すことで理解できる場合もあるので、分からなくてもとりあえず先に進んでみてください。

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

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

中級その1·
·中級その3
スライド 2 / 9

問題の説明

では約束通り、これから出す問題に答えることができたら、計算箱を返してやろう!

これから出す難しい問題に
答えられたら計算箱を返してやろう!

この問題は非常に難しいから覚悟するんだな。ミニオン、問題を説明するんだ!

わかりました。まず、こちらの弁当箱をご覧ください。

前回の復習ですが、この弁当箱は、ぼくが計算箱に変換すると になります。

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

次に、上の弁当箱と、下の弁当箱を合体させます。

それぞれの には何らかの料理が入るのですが、それについてはこれから説明します。

こちらの弁当箱と合体させる。
それぞれの には
何らかの料理が入る
13
2
23
1

合体させると、次のようになります。

合体させるとこうなる
1
1
13
2
23
1

それでは、ここで質問です!

スライド 3 / 9

を に

実は、先ほどの弁当箱は、

  • それぞれの に、ある法則に基づいて料理を入れて実行 すると、
  • に変換できる弁当箱になります。
それぞれの に、
ある法則に基づいて料理を入れ、
1
1
13
2
23
1
実行 すると、
に変換できる弁当箱になる
に変換できる弁当箱

もともとの弁当箱が に変換できる弁当箱だったので、

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

実行することで、

  • に変換できる弁当箱が、
  • に変換できる弁当箱になる

というわけですね。

に変換できる弁当箱が、
に変換できる弁当箱になる

それでは、ここで問題です!

それぞれの にどんな料理を入れると、実行後に に変換できる弁当箱になるでしょう?

問題: それぞれの に、
どんな料理を入れると、
1
1
13
2
23
1
実行 した後に
に変換できる弁当箱になる?
に変換できる弁当箱

この問題こそが、以前から話していた「難しい問題」だ。これを解けたら、約束通り計算箱を返してやろう!

スライド 4 / 9

試しに適当な料理を入れてみる

うーん…問題を完全に理解できた自信がないし、どうやって解けばいいかさっぱり分からない!

大丈夫、安心してください!

試しに、 に適当な料理を入れてみると、問題を理解できると思います。

に適当な料理を入れてみて下さい!
1
1
13
2
23
1

わかった。じゃあとりあえず、 に適当な料理を入れてみよう。

お寿司 、サンドイッチ 、ハンバーガー を適当な組み合わせで に入れてみたよ。

を適当に に入れてみた
1
1
13
2
23
1

では、問題を復習しましょう。上の弁当箱を実行したときに、結果が…

  • に変換できる弁当箱になれば成功
  • それ以外なら失敗

というわけです。

こちらの弁当箱を実行して…
1
1
13
2
23
1
に変換できる
弁当箱になれば 成功
それ以外なら失敗

では、上の弁当箱を実行したらどうなるか見てみましょう!

復習が必要ですか?: 今回の弁当箱では、初級その5で学んだ法則が登場します。

復習したい場合は、↓の「初級編の内容を復習する」を押してください。

スライド 5 / 9

実行してみよう

それでは、実行 しましょう!

まず、1 のペアが左右ふたつ以上あるので、一番左の 1 のペアからはじめます。

実行 を押してみてください。手動で進める場合は、 を押してください。

1 のペアが左右ふたつ以上ある場合は、
一番左の 1 のペアからはじめる
1
1
13
2
23
1

続いて、また 1 のペアからはじめたいのですが、1 のペアの一番下の段にひとつの料理(サンドイッチ )しかないので不可能です。

というわけで、次は 2 のペアからはじめます。

実行 を押してみてください:

下段にひとつの料理しかなく、
1 のペアからはじめられない場合、
2 のペアからはじめる
13
2
23
1

次も前回と同じく、2 のペアからはじめます。

実行 を押してみてください:

下段にひとつの料理しかなく、
1 のペアからはじめられない場合、
2 のペアからはじめる
12
2
1

つまり、最終的に以下のようになりました!

実行結果
1
1
スライド 6 / 9

計算箱に変換できない

実行を終えたので、 計算箱に変換 したいところですが…

残念ながら、この弁当箱はぼくが計算箱に変換することができません。

計算箱に変換できない
1
1

理由は、以下の法則に沿っていないからです。

一番左の料理を 、
真ん中の料理を とした場合、
右上に がひとつあり、
右下に がいくつかある
がひとつ
がいくつか

右上には の料理がひとつないといけませんが、ここでは になっているので、計算箱に変換できないのです。

右上が のハンバーガー ではなく、
のサンドイッチ なので
計算箱に変換できない
1
1

ダメか…もし仮に右上がサンドイッチ ではなくてハンバーガー だったら、 に変換できていたのになあ。

あとちょっとだったのに!

もし仮に右上がハンバーガー
だったら、 に変換できていた
1
1
スライド 7 / 9

失敗

つまり、実行しても に変換できる弁当箱にならなかったので…

実行しても…
1
1
13
2
23
1
に変換できる弁当箱にならなかった
1
1

つまり、不正解でした!

それぞれの に…
13
2
23
1
先ほどのように料理を
当てはめるのは不正解
13
2
23
1

残念…やっぱり、適当に に料理を埋めても正解にはならないかあ…

スライド 8 / 9

問題をもう一度

それでは、もう一度聞きますね!

それぞれの にどんな料理を入れると、実行後に に変換できる弁当箱になるでしょう?

問題: それぞれの に、
どんな料理を入れると、
1
1
13
2
23
1
実行 した後に
に変換できる弁当箱になる?
に変換できる弁当箱

繰り返しますが、先ほど適当に料理を入れた以下の弁当箱は、不正解でした!

こちらは不正解だった
13
2
23
1

うーん…問題の意味は分かったけど、答え方が分からない!

スライド 9 / 9

答えは次のページに

せっかく計算箱を返してもらえるチャンスなのに、問題が難しくて村人は苦戦しているようですね。

難しすぎて見当もつかない!

しかし、次のページで答えが判明します。ぜひ先に進んでみてください!

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

ひと休みする前に

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

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

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

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

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

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