数学与逻辑思维(一)

最近在看《程序员的数学》,一本很好的“数学书”。书中用一些很简单的例子表达了数学在程序中的应用。

Example 1: 逻辑判断与德·摩根定律

1.1德·摩根定律: 简单的说,就是或,与,非的互相转化。如

Pic 1(from wikipedia)

1.2 程序中的if判断语句以及可能出现的逻辑错误

在程序设计中经常会出现逻辑条件的判断,而一些大型的程序,判断的条件可能还会是多个,如果多个判断条件嵌套使用,当程序员的思维出现一些些的错误时,很可能就会出现bug,而这样的逻辑bug在大型程序中很难进行调试。

1.3运用数学中的卡若图简化程序中的逻辑判断

Example:

二灯游戏:有两个灯泡,按下按钮,满足以下条件

1.绿灯灭,黄灯亮

2,绿灯,黄灯都灭

3.绿灯,黄灯都亮 

问题:两灯的连接方式

设:

命题A   绿灯亮

命题B 黄灯亮

按照传统的方式,直接用if语句进行相应的逻辑判断即能得出条件语句。则上述表述为

if((!A && B) || (A && !B) || (A && B) )    

条件判断看上去很多,但是若经过卡若图进行简化[找出与上面条件判断等价的判断]就会显得简单的多


Pic 2

如图Pic 2 所示,问题中的判断条件在表格中的表现为1,2,3所示,则可以很直观的看出条件可以简化成!A || B,  简化后的if语句为

if(!A || B)


(ps:数学归纳法,余数等都思想都可以在程序中实现,并优化程序的复杂性,未完待续。。。)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值