だれが本当のことを言ったのか,だれが花瓶を割ったのか.
知能推理の問題は次の通りです.
もし次の一人だけが本当のことを言ったら、誰が花瓶を割ったのですか.
シャーク:ジムは花瓶を割った.
トム:シャークは誰が花瓶を割ったか教えてくれます.
エプル:トム、シャークと私は花瓶を割ることはできません.
クリス:花瓶を割っていません.
エリック:シャークは花瓶を割ったので、トムとエプルは花瓶を割ることはできません.
ジム:花瓶を割ったんですが、トムは罪のない人です.
心血来潮、簡単にプログラムで推理して、以下はコードです:
実行結果:
000100
001000
010000
だからクリス、エプル、トムかもしれない!
もし次の一人だけが本当のことを言ったら、誰が花瓶を割ったのですか.
シャーク:ジムは花瓶を割った.
トム:シャークは誰が花瓶を割ったか教えてくれます.
エプル:トム、シャークと私は花瓶を割ることはできません.
クリス:花瓶を割っていません.
エリック:シャークは花瓶を割ったので、トムとエプルは花瓶を割ることはできません.
ジム:花瓶を割ったんですが、トムは罪のない人です.
心血来潮、簡単にプログラムで推理して、以下はコードです:
public class dd {
public static void main(String[] args) {
int a, b, c, d, e, f;
// a
// b
// c
// d
// e
// f
for (a = 0; a <= 1; a++)
for (b = 0; b <= 1; b++)
for (c = 0; c <= 1; c++)
for (d = 0; d <= 1; d++)
for (e = 0; e <= 1; e++)
for (f = 0; f <= 1; f++) {
if(
( (f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))||
(!(f==1)&& (f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))||
(!(f==1)&&!(f==1)&& (b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))||
(!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&& (d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))||
(!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&& (a==1&&b==0&&c==0)&&!(f==1&&b==0))||
(!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&& (f==1&&b==0))
){
if(a+b+c+d+e+f==1){
System.out.print(a);
System.out.print(b);
System.out.print(c);
System.out.print(d);
System.out.print(e);
System.out.print(f);
System.out.println();
}
}
}
}
}
実行結果:
000100
001000
010000
だからクリス、エプル、トムかもしれない!