首页 > 解决方案 > Boolean ,正确答案是什么,为什么?

问题描述

布尔或“真值”表达式是我们在计算机语言中表达控制选择和重复的条件的方式。考虑以下 Python 布尔表达式,其中变量 beta 和 gamma 是布尔类型:

不是(beta 和 gamma)

在任何代数符号中,通常都有几种不同的方式来编写相同的表达式。例如,在整数算术中,表达式“4 x (5 + 2)”的值在数值上等价于表达式“(4 x 5) + (4 x 2)”的值。

以下哪个布尔表达式在逻辑上等价于上述表达式?

答案:
beta 或 gamma

(不是 beta 版)和(不是 gamma 版)

不是(不是测试版)或伽玛

(非 beta)或(非 gamma)

贝塔和(不是伽马)

(不是测试版)和(不是伽玛)我选择的答案是否不正确,有人可以向我解释正确的答案吗?

标签: pythonboolean

解决方案


根据德摩根定律not (A and B)not A or not B

您可以使用简单的 python 脚本来验证这一点:

In [1]: def test(fn):
   ...:     for beta in [False, True]:
   ...:         for gamma in [False, True]:
   ...:             print(f'beta: {beta}, gamma: {gamma}, ans: {fn(beta, gamma)}')
   ...:

In [2]: test(lambda beta, gamma: not (beta and gamma))
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: True
beta: True, gamma: False, ans: True
beta: True, gamma: True, ans: False

In [3]: test(lambda beta, gamma: not beta or not gamma)
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: True
beta: True, gamma: False, ans: True
beta: True, gamma: True, ans: False

In [4]: test(lambda beta, gamma: not beta and not gamma)
beta: False, gamma: False, ans: True
beta: False, gamma: True, ans: False
beta: True, gamma: False, ans: False
beta: True, gamma: True, ans: False

推荐阅读