首页 > 其他 > 详细

第二章 逻辑-真与假的二元世界

时间:2020-02-15 16:30:05      阅读:78      评论:0      收藏:0      [点我收藏+]

  初看,真与假,0和1,逻辑不是真就是假,有啥看的呢?其实你看完就会感觉多么的奇妙。

  不信?给你们一个列子 :大家猜猜他们能简化成什么?

  技术分享图片

  咱们假设三个命题:A绿灯亮为true,灭为false ;B黄灯亮为true,灭为false;C红灯亮为true,灭为false.

  如果不看这一章,写程序肯定会这么判断:

if A and B and C:
   print("按下按钮")      


if not B and C: 
print("按下按钮") if not A and C: print("按下按钮") if not A and not B and not C: print("按下按钮")

  我想大部分的程序员都会这么写吧,包括我在内。但是如果我们通过数学的逻辑分析后,会得出一个特别简单的结论就是:当A灯灭(即 not A)或者红灯亮(即C)的时候按下按钮即可。不相信?跟着我的步骤走一下就明白了。

  我们把规则通过卡诺图画出来,如下:

技术分享图片

  这样通过集合看,就是A是false或者C为true就是包含了上面的所有的勾,也就等同于我们之前的那四个条件:代码也就简化成下面的代码了,神奇吧!

if not A or C: 
   print("按下按钮")     

  

  如果用这个图您不理解,可以用高中的集合也是能看出来的,比如先把条件反向集合可以得出如下结论:

  A绿灯亮,B黄灯亮,C红灯灭   的时候不按开关

  A绿灯亮,B黄灯灭,C红灯灭   的时候不按开关

  上面的合起来就是 A绿灯亮,C红灯灭   的时候不按开关,再反向一下就是 A绿灯灭(not A)或者红灯亮(C) 按开关,结论一样

  

 

第二章 逻辑-真与假的二元世界

原文:https://www.cnblogs.com/libotao/p/12312275.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!