美文网首页程序员
程序员的数学1-数学思维 读书笔记(上)

程序员的数学1-数学思维 读书笔记(上)

作者: oceanedu | 来源:发表于2018-07-27 17:55 被阅读0次

第1章 0的故事——无即是有

介绍了10进制、2进制,2进制与10进制之间的相互转换方法;

按位计数法;

指数法则:10^0, 10^1, 10^2 等等···

小结的0的占位作用,0 不是空,0代表“无”的存在。

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

逻辑的完备性需要两个条件保证:完整性 (intergrity)& 排他性(exclusivity)

完整性解决遗漏(missing)的错误,排他性解决重复(repeat/overlay)的错误。

命题(proposition):能够判断对错的陈述句。

6种对二元命题(是/非,对/错,True/False)的运算与操作:

逻辑非(not):  逻辑与(and):∧  逻辑或(or):∨

异或(exclusive or):⊕    相等:=  蕴涵(if A then B):=>

原命题的逆否命题(converse-negative proposition)等价于原命题。

即:原命题为真,则其逆否命题也真,原命题为假,其逆否命题也假。

德摩根定律(De Morgan's law/theorem):

根据逻辑表达式的对偶性,德摩根定律可表示为:非A或非B,等价于非“A∧B”;非A且非B,等价于非“A∨B”。

(注:逻辑表达式的对偶性,即将逻辑表达式中的T & F、与 & 或、A与非A分别互换,即可得到该表达式的否定式)

用于清楚显示逻辑的图示方法:文氏图,又称韦恩图(图1)、卡诺图(图2)。

图1:文氏图(又称韦恩图) 图2:卡诺图,示二命题(左)、三命题(右)卡诺图

真假逻辑结果之外的第三种情况——Undefined(未定义)

三值逻辑(ternary logic)包括:带条件的逻辑与(conditional and, short circuit logical and),以&&表示、带条件的逻辑或,以 || 表示、三值逻辑否定,以 ! 表示。

带条件的逻辑与(&&):含义与C、Java中的&&相同,实际含义为:根据条件A,决定是否需要判断B。if (A&&B) {···} 相当于如下条件语句(代码):

if (A) {

    if (B) {···

          ···}

        }

这里A可作为运行B操作之前的检查条件,即:if (A&&B){···}意味着:check (A),如果True,则execute(B);如果check (A)结果为False,则不执行B。

带条件的逻辑或( || ):(A || B)的结果,可理解为如A为True,则恒为True,如A为False,则恒为B。

转化为条件语句,可表示为:

if (A) {

      ···

       }else {

              if (B)

               ···}

       }

三值逻辑的否定(!):即A的否定式表示为 !A。A-True, !A-False;A-False, !A-True;A-Undefined, !A-Undefined.

三值逻辑的德摩根定律

(!A)||(!B)=!(A&&B)

(!A)&&(!B)=!(A||B)

第2章小结:逻辑的各种表达形式(图3)

图3:Different expressions of Logic

第3章:余数——周期性和分组

余数的周期性:以星期计算的周期为例、以指数乘方的个位数变化(如1234567^987654321)为例

奇偶性(parity)的校验:以信息接受和发送方约定在数据中插入奇偶性校验位(parity bit)解决。

以分组的方式解决问题:通过奇偶性,进行准确的分组,进而以分组的方式,而非逐个或计算所有细节的方式解决问题。这是一种通用的思路。

以寻找恋人居住地为例(不关注路径,关注结果,对结果分组以解决最终问题,下图4)、以草席问题为例(下图5)、以哥尼斯堡七桥问题为例(下图6)。

图4:寻找恋人问题:恋人每月随机移动1次,寻找12个月后的恋人所在地。解题思路:关注结果,而非路径。 图5:草席问题。解题思路:仅当黑白块数量相等时,才相当于可正好铺满。 图6:哥尼斯堡七桥问题。解题思路:留做作业。

图书信息:

[1] 《程序员的数学》 [日]结城浩 著. 管杰 译. 人民邮电出版社, 北京. 2012-10-01

相关文章

网友评论

    本文标题:程序员的数学1-数学思维 读书笔记(上)

    本文链接:https://www.haomeiwen.com/subject/fqkgmftx.html