古畑
ははぁ、いわゆる論理パズルですね。正直な話、面倒ですね^^;しかし、やってみますね。とりあえず、すべての組み合わせを書きます。この際、3種類の液体を仮にX,Y,Zとします。3種類の液体の組み合わせは、6通り。
つまりXYZ,XZY,YXZ,YZX,ZXY,ZYXです。
ここで、それぞれを特定するにはありえない事象を使えば良いのではないかと思います。
そこで魔女には「Xを飲んだあと毒薬を飲み、最後にYを飲むと私は助かるか」と質問します。これで、何故それぞれを特定できるかを今から例を挙げて説明しますね。
ここでは仮にXを解毒剤、Yを毒薬,Zを胃薬とします。では、先ほどの質問の場合どうなるかというとYが毒薬で重複しているので、これは不成立となります。
>質問にならないときや、意味が通らないときは何も言わん。
要するにこの事態に魔女を追いこんでしまうわけです。よって魔女が沈黙した場合、再度質問できます。
では、「Xを飲んだあと毒薬を飲み、最後にZを飲むと私は助かるか」と聞いた場合はどうでしょうか。これに魔女はNOと答えるでしょう。そうであれば、その2つを入れ替えて飲めば助かります。
また、「Zを飲んだあと毒薬を飲み,最後にXを飲むと私は助かるか」と聞くとどうなるでしょうか。この場合魔女はYESと答えます。そうであれば、そのまま飲めば良いわけです。
つまりまとめると、まず任意に2つの液体を選ぶ。そして先ほどのように質問をする。
沈黙すれば、選んだうちのどちらかが毒薬。今度はそのどちらかに絞って再度質問。
YESと言えばそのまま飲む、NOと言えば2つの液体の順番を入れ替えて飲む。
これでどうでしょうか^^