网上看到一个视频,很搞笑,讲述了程序员眼中的婚姻门。但是举例时,用了对程序员不太友好的名字,我这里再用文本记录一下,但是将人名改成了程序员非常熟悉的名字!
与或门
程序员对与非门再熟悉不过了,就是下面这样的真值表:
与门
输入 1 | 输入 2 | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 假 |
假 | 真 | 假 |
假 | 假 | 假 |
即只有两个输入同时为真时,结果才为真,其他情况下结果均为假。
或门
输入 1 | 输入 2 | 结果 |
---|---|---|
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
或门和与门正好相反,只有两个输入同时为假时,结果才为假,否则结果是真。
婚姻门
程序员最熟悉的是就是 Alice 和 Bob,这在用户故事里反复出现,在通信的时序图或者安全示意图里也经常是主角。
那么假设有一天,他们结婚了,就形成了如下的对错表:
Alice | Bob | 结果 |
---|---|---|
对 | 对 | Alice 是对的 |
对 | 错 | Alice 是对的 |
错 | 对 | Alice 是对的 |
错 | 错 | Bob 错了! |