|
1
401
在这类问题中,你的第一步总是要做一个逻辑表。
|
|
|
2
65
您有两种选择:
为了进一步了解这类表达式,我建议在谷歌上搜索“布尔代数”、“谓词逻辑”和“谓词演算”。这些都是深入的数学主题。你不需要全部学习,只需要基本知识。
您还应该了解“短路评估”。因此,表达式的顺序对于精确复制原始逻辑非常重要。虽然
|
|
3
15
否则,将“C”的代码放在一个单独的函数中,并调用它:
|
|
|
4
14
在具有模式匹配的语言中,可以更直接地反映问题C答案中的真值表来表达解决方案。
如果您不熟悉语法,每个模式都由一个|表示,后跟要匹配的值(a,b),下划线用作通配符,表示“任何其他值”。因为我们想做动作c以外的事情的唯一情况是当a为真,b为假时,我们显式地将这些值声明为第一个模式(真,假),然后在这种情况下做任何应该做的事情。在所有其他情况下,我们采用“通配符”模式并执行操作c。 |
|
|
5
10
问题陈述:
描写
implication
:
A.
暗示
|
|
6
6
呃,这也把我绊倒了,但是
pointed out by Code-Apprentice
这就是我们处理这3个案例的方式:
代码学徒的道具,让我在这里直截了当。我建议接受 his answer |
|
|
7
6
在逻辑概念中,可以按如下方式解决此问题:
因此,在基于C的语言中,您可以使用以下内容:
卡诺图 这是一种简化布尔代数表达式的方法。 |
|
|
8
6
尽管已经有了很好的答案,但我认为这种方法对于刚接触布尔代数的人来说可能更直观,然后可以计算真值表。
如果你想最小化,你可以继续。就像在“普通”算术中一样,你可以乘法。
另一种情况(/*…*/)is将始终在不执行c时执行,因此我们可以将其放在else情况下。 另外值得一提的是,将动作c放入方法中的任何一种方式都可能有意义。 这给我们留下了以下代码:
通过这种方式,还可以使用更多的操作数最小化项,这在真值表中很快就会变得难看。另一个好方法是卡诺图。但我现在不会深入讨论这个问题。 |
|
|
9
4
|
|
10
3
|
|
|
11
2
我会将C提取到一个方法中,然后在所有情况下尽快退出该函数。
先反转
然后你可以注意到这两个案例有着相同的主体,可以结合在一起:
需要改进的可选内容包括:
|
|
12
2
|
|
|
user9549524 · 基于一列的值从二维矩阵中提取值 7 年前 |
|
|
J Alan · 用多路复用器分析数字电路的输出 7 年前 |
|
|
sirius · BDDs或FDDs中“路径”的含义和意义是什么? 7 年前 |
|
|
Bartholomas · Python语句中的布尔逻辑 8 年前 |
|
|
random-user · (肯定)标准格式的XOR子句 8 年前 |
|
|
maschu · 大整数数组逻辑中遇到无效值 8 年前 |
|
|
Jigoku · 检查一列是否具有特定值,然后通过列表限制另一列 8 年前 |