【编程题目】有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A、B、C 三人额头上贴
第 22 题(推理):
有 4 张红色的牌和 4 张蓝色的牌,主持人先拿任意两张,再分别在 A、B、C 三人额头上贴
任意两张牌,A、B、C 三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上
是什么颜色的牌,A 说不知道,B 说不知道,C 说不知道,然后 A 说知道了。
请教如何推理,A 是怎么知道的。
如果用程序,又怎么实现呢?
推理:设A有x1张红色牌 y1张蓝色牌
B有x2张红色牌 y2张蓝色牌
C有x3张红色牌 y3张蓝色牌
都不知道显然没有一个人能看到4张相同颜色的牌。以C为例来说满足下面的不等式
x1,x2,y1,y2已知,
2≥x3,y3≥0
x3+y3 = 2
x1 + x3 ≤ 3
x2 + x3 ≤ 3
y1 + y3 ≤ 3
y2 + y3 ≤ 3
只有在 x1、x2、y1、y2中有两个为2时才能得到唯一解。即如果C知道,分布一定是:
A(rr) B(bb) C(rb) 或 A(bb) B(rr) C(rb)
代码:我不会用代码求不等式.....没写出来。