在知乎上看到一个问题,张三说李四在说谎,李四说王五在说谎,王五说张三李四都在说谎。问谁在说谎。用R语言解决。。不得不说,这个问题还是挺有趣的。但是拿到这个问题,我是不知道该怎么办的。不过有大神孙利军给出了答案。如下:
张三、李四和王五,有三个人,每个人均有“说谎”,“说真话”两种可能,故一共有$2^3=8$中可能。这里,通过expand.grid()
函数创建一个数据框,包含所有的组合。
|
|
|
|
其中,0代表撒谎,1代表诚实,每一行是一种组合,组合要满足题目中所说的逻辑关系,也就是说:
|
|
|
|
|
|
可以看到,第3行结果为TRUE
,说明第3中组合是符合条件的。因此,答案为张三说谎,王五说谎,李四说真话。
知乎原题传送门:R语言解决张三李四王五说谎问题?