吃透1类题day3:Java算法练习之联结词01

 我为大家弄明白这类算法一共准备了5道题:

  • 条件联结词
  • 双条件联结词
  • 求“(P∨Q)∧(P→R)∧(Q→R)”成真赋值
  • 输出“(P∨Q)∧(P→R)∧(Q→R)”真值表
  • 统计“﹁(P→Q)∧(P⇄R)”取值情形

希望大家最终有哪些收获:

  • 什么是条件联结词?
  • 条件联结词的应用场景?
  • 有没有觉得条件联结词的意义有些似曾相识?
  • 如何通过现实生活更好地理解条件联结词,将数学、编程上的知识映射、关联到生活之中?

不过多废话,下面先拿最简单的一道题作为引入,帮助大家快速熟悉条件联结词的使用方式

练习1:条件联结词

题目描述

给定原子变元P、Q的真值(用1表示T,用0表示F),求命题公式P→Q的真值。

输入描述

输入原子变元P、Q的真值(1或0),用空格隔开。

输出描述

输出命题公式P→Q的真值(1或0)。

样例输入

1 1

样例输出

1

知识点

联结词

提示

对输入的P、Q,直接输出表达式“P<=Q”的值即可。

在刚开始不熟悉条件联结词的情况下,我们的切入点或是突破点是什么?

真值?假值?true(T)?false(F)?1?0?这不是布尔值吗?!

我们第一时间应该会联想到代码中常用常见的布尔值运算,以及...一些相关的逻辑运算符:或||与&&非!。那么联结词与这些逻辑运算符究竟有没有相似之处呢?我们不妨先将这个疑问摆在一旁。

这些奇怪的符号是什么?那么我们就来介绍一下:

从左到右分别为:非(否定)﹁、合取∧、析取∨、蕴含→、等价↔

从表中我们不难看出五种情况下分别什么条件才为真:

  1. 当p为假,非p为真
  2. 当且仅当p和q都为真时,p合取q为真
  3. 当且仅当p和q不都为假时,p析取q即为真
  4. 当且仅当p为真q为假时,p蕴含q为假
  5. 当且仅当p和q同时为真或假时,p等价于q为真

其中非的使用最好理解,蕴含相对是最难理解的一种条件联结词。

暂时先回到题目本身,所以对照表格我们可以知道P→Q什么时候为真什么时候为假的条件。

所以我们就有了转换为代码的思路:if-else的条件判断

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //在此输入您的代码...
        int p = sc.nextInt();
        int q = sc.nextInt();
        if(p==1&&q==0){
          System.out.println(0);
        }else{
          System.out.println(1);
        }
        sc.close();
    }
}

代码就几行,看着就非常简单,但却包含着我们思维的一个过程:从刚开始对条件联结词的迷茫,再到知道对照着表格的判断条件来写出代码,这就是一个非常浅显而简单的学习过程。

对于这五个符号还有一些理解方式,因为它们也被称之为复合命题:

  1. p的否定
  2. p并且q
  3. p或者q
  4. 若p则q
  5. p当且仅当q
  • 并且不就是两个条件都要满足的意思吗,即p真q真合取为真
  • 或者不就是两者条件满足其一即可吗?所以p或q二者其一为真即可(不要忘了都真自然亦可)

☆若p则q...,如何更好的理解呢?

  • 如果p为真,则q也必须为真;如果p为假,则q真假随意。

假设:

p命题:今天下雨;q命题:地面湿滑

如果今天下雨(p为真),则地面必然湿滑(q也必须为真);如果今天不下雨(p为假),那么地面可能湿滑,也可能不湿滑(q的真假可以随意)。

  • 当且仅当表明这两个命题互为充分必要条件,极其苛刻的条件限制,可以和“若p则q”的成立条件相互对比理解。p真q真p假q假,两者“同生共死”

假设:

p命题:今天星期四;q命题:明天星期五

今天是星期四,明天必然是星期五;今天不是星期四,明天也必然不是星期五。

好的到这一步,我们应该已经对条件联结词的使用有一个初步的了解了。

下面我们安排一个实际应用场景:

已知:

  • p:今天是周末
  • q:我会睡懒觉
  • r:我会吃大餐

问:在什么条件下这些复合命题才为真?

  • p合取q
  • q析取r
  • p等价于(q析取r)

答:

  • 今天是周末,我会睡懒觉
  • 我会睡懒觉,或者我会吃大餐
  • 今天是周末,睡懒觉和吃大餐两个事件必然会发生一个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值