真值表

简单的离散数学趣味题(乙猜甲手中的棋子颜色)

回眸只為那壹抹淺笑 提交于 2020-03-04 19:19:15
    最近在上离散数学的网课,老师提到了这道题,我看了几遍终于理解意思了(太笨了没办法),在此作个小记录。 原题:甲手里有一个围棋子,要乙来猜棋子的颜色是白的还是黑的。条件是:只允许乙问一个只能回答“是”或“否”的问题,但甲可以说真话,也可以说假话。问乙可以向甲提出一个什么问题, 然后从甲回答“是”或“否”中就能判断出甲手中棋子的颜色? 第一步:明确目标     甲回答“是”,无论他说的真话还是假话,棋子一定是白色;甲回答否,棋子一定是黑色。 第二步:设计命题,构建真值表 (1)设P:棋子是白色;Q:甲说了真话 (2)真值表 P Q 实际情况 1 1 1 1 0 1 0 1 0 0 0 0     显然这个真值表满足我们的要求,即只要棋子是白色,那么无论甲说的真话还是假话,实际颜色一定是白色。     问题就转化成根据真值表构造命题了,这种真值表非常常见,如P←→Q。     可以问甲:棋子是白色当且仅当你说了真话,这是真的吗? 来源: CSDN 作者: qq_26589641 链接: https://blog.csdn.net/qq_26589641/article/details/104655061

python3条件表达式的用法

半世苍凉 提交于 2020-03-01 07:44:11
条件表达式: (类似三目运算符:条件运算符C?A:B) 语法: 表达式1 if真值表达式 else 表达式2 作用: 如果真值表达式的布尔环境值为True,表达式1执行并返回对象,否则表达式2执行并返回对象示例: 取绝对值: x=input(“请输入一个数:")x=int(x) x=xifx>0else-x#等同于x=abs(x) 来源: CSDN 作者: 浅哈哈哈 链接: https://blog.csdn.net/weixin_44809386/article/details/104577864

Multisim 之逻辑转换仪

早过忘川 提交于 2020-02-03 12:24:14
1、逻辑转换仪的作用   已知逻辑电路图   1)根据逻辑电路图转换成逻辑表达式   2)化简逻辑表达式   3)列出真值表   已知真值表   1)根据真值表转化成逻辑表达式   2)根据逻辑表达式生成逻辑电路 2、如何在Multisim中找到逻辑转换仪 在软件的右侧找到“Logic Converter” 来源: https://www.cnblogs.com/QQ2962269558/p/12255069.html

由真值表确定主析取范式和主合取范式

我是研究僧i 提交于 2019-12-28 09:37:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 给出任意真值表,都可以写出对应的主析取范式和主合取范式,主析取范式和主合取范式都是存在且唯一的。 主析取范式相当于列出了所有使得公式取值为1的条件,对应于真值表中值为1的行;主合取范式相当于列出了所有使公式取0的条件,对应于真值表中值为0的行。 例如,给出如下真值表 行号 p q r 值 0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 可见2、4、5、7行值为1,于是对应的主析取范式为 (!p & q & !r) | (p & !q & !r) | (p & !q & r) | (p & q & r) 而0、1、3、6行值为0,于是主合取范式为 (p | q | r) & (p | q | !r) & (p | !q | !r) & (!p | !q | r) 所以,真值表、主析取范式、主合取范式三者,知道其中一个,可以立即得出其它两个。 来源: oschina 链接: https://my.oschina.net/u/3061712/blog/3148396

构造命题公式的真值表--biaobiao88

爷,独闯天下 提交于 2019-12-03 04:37:30
对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。 #include<iostream> using namespace std; struct { int p[4] = {1,1,0,0}; int q[4] = {1,0,1,0}; }m; int main() { cout << "   p:"; for(int i = 0;i < 4;i++) cout << m.p[i] << " "; cout << endl; cout << "   q:"; for(int i = 0;i < 4;i++) cout << m.q[i] << " "; cout << endl; //非p cout << "  非p:"; int copyp[4]; int k = 0; int feip[k]; for(int i = 0;i < 4;i++) copyp[i] = m.p[i]; for(int i = 0;i < 4;i++) { if(copyp[i] == 0) copyp[i] = 1; else copyp[i] = 0; } for(int i = 0;i < 4;i++) { feip[i] = copyp[i]; cout << copyp[i] << " "; }

构造命题公式的真值表--biaobiao88

匿名 (未验证) 提交于 2019-12-03 00:15:02
对给出的任意一个命题公式(不超过四个命题变元),使学生会用C语言的程序编程表示出来,并且能够计算它在各组真值指派下所应有的真值,画出其真值表。 #include<iostream> using namespace std; struct { int p[4] = {1,1,0,0}; int q[4] = {1,0,1,0}; }m; int main() { cout << "   p:"; for(int i = 0;i < 4;i++) cout << m.p[i] << " "; cout << endl; cout << "   q:"; for(int i = 0;i < 4;i++) cout << m.q[i] << " "; cout << endl; //非p cout << "  非p:"; int copyp[4]; int k = 0; int feip[k]; for(int i = 0;i < 4;i++) copyp[i] = m.p[i]; for(int i = 0;i < 4;i++) { if(copyp[i] == 0) copyp[i] = 1; else copyp[i] = 0; } for(int i = 0;i < 4;i++) { feip[i] = copyp[i]; cout << copyp[i] << " "; }

Python基础---控制执行流程

匿名 (未验证) 提交于 2019-12-02 22:51:30
一.if语句 1.if语句 作用: 让程序根据条件选择性地执行某条语句或某些语句 说明: if语句又叫条件语句,也叫分支语句 语法: if 真值表达式 1 : 语句块 1 elif 真值表达式 2 : 语句块 2 ... else : 语句块 4 语法说明: elif子句可以有0个,1个或多个 else子句可以有0个或1个且只能放在此if语句的最后 要求: if语句内部的语句通常要以4个空格的缩进来表示包含关系,相同的缩进格式代表相同的所属级别 示例: # 输入一个数字,判断这个数是0,还是正数,还是负数 n = int ( input ( "请输入一个数: " )) if n == 0 : print ( "您输入的是0" ) elif n > 0 : print ( "您输入的是正数" ) else : print ( "您输入的是负数" ) if语句的真值表达式: if 100 : print ( "真值" ) #等同于 if bool ( 100 ):    print ( "真值" ) 2.if语句嵌套: if语句本身是由多条子句组成的一条复合语句 if语句可以作为语句嵌套到另一个语句的内部 示例: # 根据输入的月份来判断是哪儿个季度 month = int ( input ( "请输入月份(1~12): " )) if 1 <= month <= 12 : print