ものがたり(旧)

atsushieno.hatenablog.com に続く

アナロジー

Steven PinkerのThe stuff of thoughtsにおもしろいクイズがあったので紹介してみたいと思う。


ヒマラヤの山奥のある宿屋には、主人と年配者と若者が行う茶の儀式がある。まず主人が格の低い方から順に三つの作業 - 火に薪をくべ、茶を出し、詩を吟ずる - を行う。この儀式は何度もくり返されるのだが、一つの儀式が終わるたびに、誰でも「貴殿に代わり、次は私にこの難儀な仕事をやらせていただけますか?」と申し出ることができる。ただし、前の人が行った中でもっとも格の低い作業しか代わることができない。また、ある作業を終えた後にそれより格の高い作業を行うことはできない。儀式の最後には三つの作業をすべて若者が行わなければならない。さて、どうすればよいか?

思考する言語(中) 「ことばの意味」から人間性に迫る (NHKブックス)

思考する言語(中) 「ことばの意味」から人間性に迫る (NHKブックス)

実はプログラミングの世界では割と知られている問題なのだけど、解けるだろうか。

補足: なんか誤解の余地がありそうなので追記しておくと(訳文が↑の通りなんだけど)、儀式がくり返されるといっても、一番格の低い作業からすべて代わってやる必要はなく、一度交代して引き継いだ作業は、引き継いだ人がそのまま次の儀式でもその作業を行うということになる。だから、たとえば3人で3つの作業をばらばらに行うことなども考えられる。