关于蕴含真值表的解释<韦恩图><C代码>

A为假时B可真可假;
A为真时B一定为真,B为假则与命题相悖。

换句话说就是:
········A为真时B一定不能为假,所以这种情况相对于命题结果为False
········而其他情况对于命题都无所谓,所以相对于命题的结果都为True

画成韦恩图表示,三个True的情况叠加在一起就是A蕴含B的韦恩图,如下↓↓↓
注:左圈为A,右圈为B,圈内为真,圈外为假
关于蕴含真值表的解释<韦恩图><C代码>_第1张图片
辅以一段C代码帮助理解↓↓↓:

#include "stdio.h"
#define TRUE 1
#define FALSE 0
typedef int Status;

int main(){
    Status A,B;
    printf("请输入B的真/假(1/0):>");
    scanf("%d",&B);
    /*当前状态就无关A、B真假*/
    /*但如果不满足B,A一定不满足*/
    /*而我们是可以不满足B的,因为可能不满足B的状态才是我们接下来要的状态*/
    if (B == TRUE){
        /*在这里时B已经满足了,A不一定满足*/
        /*这种状态下A可以满足也可以不满足*/
        printf("请输入A的真/假(1/0):>");
        scanf("%d",&A);
        if (A == TRUE){
            /*在这里A一定满足*/
            /*由此可以看出满足A就一定满足B*/
            /*也就是说满足A蕴含着满足B,即A蕴含B*/
            puts("这里是A_TRUE_B_TRUE");
        }
        puts("这里是A_FALSE_B_TRUE");
    } else {
        puts("这里是A_FALSE_B_FALSE");
    }
    /*由此可见,不存在A_TRUE_B_FALSE,所以A真B假为FALSE,其他的情况为TRUE*/
    /*并且A辨真假的条件完全可以和B辩真假的条件不相关,但是B却是A的必要条件,
        B不成立,A就一定不成立,
        但是用自然语言的因果顺承关系去描述A与B的“蕴含”关系就会出现读不通的情况*/
    /*A和B就像游戏的两个关卡,他们完全可以不同类型,也可能相同类型,
        相同类型你就容易想到人类思维惯性上的联系,
        但如果你在关注这种联系的话其实你一开始的关注点就错了,
        
        倘若B关A关都是打倒一个怪物,你可以说打倒B关的怪物是来到A关的必要条件,
        人类正常思维很容易联想到B关的怪物是A关怪物的小弟,

        但是可能B关让你解一道数学谜题就通关了,
        然后到了A关依然让你打倒一个怪物,这时你不能说B关的谜题是A关怪物的小弟,
        自然语言阐述的话你得表述为“解答B关的谜题是来到A关的必要条件”,
        再换一种表述就是“通关B是来到A关的必要条件”

        所以我们关注的压根就不是两个事实的具体判定方法,
        我们关心的只是两个事实的真假结果(即事实成立与否),并且如果B是假,也就是B关不通过
        它就一定来不到A

        所以我们描述AB之间的蕴含关系时应当关注的不是具体的判定条件,
        我们只关心判定结果是否成立,成立就从B来到A接着判断A,B不成立干脆连A的边都挨不着*/
}

你可能感兴趣的:(笔记,数学)