作者:夫功的美丽家园 | 来源:互联网 | 2023-05-17 16:58
设有A,B,C三人要么说谎要么说真话,A说B说谎,B说C说谎,C说A和B说谎,编写合适算法。
12 个解决方案
A和B肯定一个人说谎,而C说A和B都说谎,所以C说谎,故B说真话,A说谎
A = !B, B = !C, C = !(A || B)
===> A = C = !A && !B = !A && A;
===> A = false, B = true;
为什么“C = !(A || B)”,而不是C = !(A && B)?//你这个是指 A 和 B 只要有一个是说谎就可以了而不是只A和B都说谎
lz想要问什么?分析几个人谁说谎谁没说谎吗?
就这题而言,没有答案
若A说实话,则B说慌,则C说实话,则A说实话,矛盾
若A说谎, 则B说实话,则C说谎,则A说实话,矛盾
典型的悖论
(C说A和B说谎) 如果C说谎则有:
1. A 在说实话 ,B 在说实话;
2. A 在说实话 ,B 在说假话;
3. A 在说假话 ,B 在说实话;
本题中就是 3 这种情况