文章目录

  • 第1章 0的故事
    • 10进制
    • 2进制
    • 指数法则
    • 0所起的作用
  • 第2章 逻辑
    • 兼顾完整性和排他性
    • 逻辑非
    • 逻辑与
    • 逻辑或
    • 异或
    • 相等
    • 蕴含—若A则B
    • 德·摩根定律
    • 三值逻辑的德·摩根定律
    • 本章小结
      • 逻辑的各种表现形式
  • 第3章 余数
    • 星期数问题
      • 直观地把握规律
    • 乘方得思考题
    • 黑白棋通信

程序员的数学系列阅读笔记,第一部分介绍数学基础,还有一些有趣的数学问题

第1章 0的故事

无即是有,zero matters

10进制

2503

2×103+5×102+0×101+3×1002_{\times10^3}+5_{\times10^2}+0_{\times10^1}+3_{\times10^0}2×103​+5×102​+0×101​+3×100​

2进制

1100

1×23+1×22+0×21+0×201_{\times2^3}+1_{\times2^2}+0_{\times2^1}+0_{\times2^0}1×23​+1×22​+0×21​+0×20​

基数转换

  • 2进制表示12

    计算机计算过程:(21+19)→转换为2进制(10101+10011)→使用2进制计算(101000)→转换为10进制(40)(21+19)\xrightarrow{转换为2进制}(10101+10011)\xrightarrow{使用2进制计算}(101000)\xrightarrow{转换为10进制}(40)(21+19)转换为2进制​(10101+10011)使用2进制计算​(101000)转换为10进制​(40)

指数法则

103→110102→110101→110100=110^3\xrightarrow{\frac{1}{10}}10^2\xrightarrow{\frac{1}{10}}10^1\xrightarrow{\frac{1}{10}}10^0=1103101​​102101​​101101​​100=1

25→1224→11023→1222→1221→1220→122−1=122^5\xrightarrow{\frac{1}{2}}2^4\xrightarrow{\frac{1}{10}}2^3\xrightarrow{\frac{1}{2}}2^2\xrightarrow{\frac{1}{2}}2^1\xrightarrow{\frac{1}{2}}2^0\xrightarrow{\frac{1}{2}}2^{-1}=\frac{1}{2}2521​​24101​​2321​​2221​​2121​​2021​​2−1=21​

指数法则

Na×Nb=Na+b(N≠0)N^a\times\N^b=N^{a+b}(N\neq0)Na×Nb=Na+b(N​=0)

0所起的作用

  • 占位

    2503, 表示10位什么都没有

  • 统一标准,简化规则

    按位计数就可统一写为

    ak×10ka_k\times10^kak​×10k

    n=3,a3=2,a2=5,a1=0,a0=3→2503n=3,a_3=2,a_2=5,a_1=0,a_0=3\rightarrow2503n=3,a3​=2,a2​=5,a1​=0,a0​=3→2503

  • 0表示没有

    有规律地服用一种胶囊,每4天停用一次。也就是3天服用,1天停用。于是每4粒胶囊中有1粒是“没有药效”的假胶囊,放入标有日期的盒子并放入每天需要服用的药,以后就只用每天服用。

第2章 逻辑

真与假的二元世界

逻辑是消除歧义得工具

兼顾完整性和排他性

没有遗漏,没有重复

逻辑非

AAA ¬A\neg A¬A
true false
false true

双重否定表肯定

AAA ¬A\neg A¬A ¬¬A\neg\neg A¬¬A
true false true
false true false

逻辑与

A∧B(AandB)A\land B(A\quad and \quad B)A∧B(AandB)

真值表

AAA BBB A∧BA\land BA∧B
true true true
true false false
false true false
false false false

文氏图

文氏图表示¬(A∧B)\neg(A\land B)¬(A∧B)

逻辑或

A∨B(AorB)A\lor B(A\quad or\quad B)A∨B(AorB)

真值表

AAA BBB A∨BA\lor BA∨B
true true true
true false true
false true true
false false false

文氏图

文氏图表示(¬A)∨(¬B)(\neg A)\lor(\neg B)(¬A)∨(¬B)

异或

A⊕BA\oplus BA⊕B
真值表

AAA BBB A∨BA\lor BA∨B
true true false
true false true
false true true
false false false

文氏图

相等

A=BA=BA=B
真值表

AAA BBB A=BA=BA=B
true true true
true false false
false true false
false false true

文氏图

¬(A⊕B)→(A=B)\neg(A\oplus B)\rightarrow(A=B)¬(A⊕B)→(A=B)

蕴含—若A则B

A⟹BA\implies BA⟹B
真值表

AAA BBB A⟹BA\implies BA⟹B
true true true
true false false
false true true
false false true

A为true时,仅当B为false时A⟹BA\implies BA⟹B才为false
A为false时,A⟹BA\implies BA⟹B恒为true

此为逻辑上“如果”的定义

我们平时说的“若A则B”有两种情况

  1. 若A为true,则B也为true。若A为false,则B也为false
  2. 若A为true,则B也为true。但是,若A为false时,则B为true/false都可以(对B没有任何影响)

在逻辑上二者的区别在于,1是A=BA=BA=B,2是A⟹BA\implies BA⟹B

文氏图,(¬A)∨B(\neg A)\lor B(¬A)∨B的文氏图也是这样,于是(¬A∨B)⟺(A⟹B)(\neg A\lor B)\iff (A\implies B)(¬A∨B)⟺(A⟹B),二者等价

B⟹AB\implies AB⟹A为A⟹BA\implies BA⟹B的逆命题,逆命题不一定为真

(¬B)⟹(¬A)(\neg B)\implies(\neg A)(¬B)⟹(¬A)的文氏图也和A⟹BA\implies BA⟹B的相同(二者等价),即,((¬B)⟹(¬A))⟺(A⟹B)((\neg B)\implies(\neg A))\iff(A\implies B)((¬B)⟹(¬A))⟺(A⟹B)
此为A⟹BA\implies BA⟹B的逆否命题

德·摩根定律

(¬A)∨(¬B)=¬(A∧B)(\neg A)\lor(\neg B)=\neg(A\land B)(¬A)∨(¬B)=¬(A∧B)

(¬A)∧(¬B)=¬(A∨B)(\neg A)\land(\neg B)=\neg(A\lor B)(¬A)∧(¬B)=¬(A∨B)

三值逻辑的德·摩根定律

(!A)∨(!B)=!(A∧B)(!A)\lor(!B)=!(A\land B)(!A)∨(!B)=!(A∧B)
(!A)∧(!B)=!(A∨B)(!A)\land(!B)=!(A\lor B)(!A)∧(!B)=!(A∨B)

if (!(x >= 0 && y >= 0)) {.....
}
// equal to
if (x < 0 || y < 0) {....
}

本章小结

逻辑的各种表现形式

if语句将世界一分为二,条件成立的世界和条件不成立的世界

第3章 余数

周期性和分组

星期数问题

今天是星期日,100天后是星期几?

1亿天呢?

1010010^{100}10100天后呢?

100÷7=14...2100\div7=14...2100÷7=14...2

因此100天后是星期二

108÷7=14285714...210^{8}\div7=14285714...2108÷7=14285714...2

因此1亿天后是星期二

0的个数 数字 除以7的余数 星期数
0 1 1
1 10 3
2 100 2
3 1000 6
4 10000 4
5 100000 5
6 1000000 1
7 10000000 3
8 100000000 2
9 1000000000 6
10 10000000000 4
11 100000000000 5
12 1000000000000 1

余数以1、3、2、6、4、5···的顺序循环

100÷6=16...4100\div6=16...4100÷6=16...4

余数为4,因此1010010^{100}10100天后是星期四

直观地把握规律

第n天是星期几

第10n10^n10n天是星期几

乘方得思考题

12345679876543211234567^{987654321}1234567987654321的个位数是什么

试算:

123456701234567^012345670的个位数=707^070的个位=1

123456711234567^112345671的个位数=717^171的个位=7

123456721234567^212345672的个位数=727^272的个位=9

123456731234567^312345673的个位数=737^373的个位=3

123456741234567^412345674的个位数=747^474的个位=1

123456751234567^512345675的个位数=757^575的个位=7

123456761234567^612345676的个位数=767^676的个位=9

123456771234567^712345677的个位数=777^777的个位=3

123456781234567^812345678的个位数=787^878的个位=1

123456791234567^912345679的个位数=797^979的个位=7

周期为4,用987654321对4取余0、1、2、3其中之一,它们分别对应1、7、9、3

余1,所以个位数是7

黑白棋通信

  1. 桌面随机7枚黑白棋棋子,魔术师蒙着眼睛,看不到棋子
  2. 魔术师徒弟看完7枚棋子后,又放进一枚,这时桌面有8枚棋子
  3. 观众可以选择翻转一枚或者不翻转任何棋子,此时观众和徒弟都不能说话
  4. 魔术师观察8枚棋子,马上就能判断观众是不是翻转了棋子

程序员的数学系列(一)相关推荐

  1. 作为一名程序员,数学到底对你有多重要?

    最近在知乎上看到一个贴子,看完后我沉默了..... 沉思后想想,其实每个行业都会分等级,程序员也不例外!说好听一点的叫工程师,普通一点的叫程序员,差一点的叫码农,更差的还会叫码畜,码奴.(哎..... ...

  2. 程序员的数学笔记3--迭代法

    第三节课程,介绍的是迭代法. 前两节笔记的文章: 程序员的数学笔记1–进制转换 程序员的数学笔记2–余数 03 迭代法 什么是迭代法 迭代法,简单来说,其实就是不断地用旧的变量值,递推计算新的变量值. ...

  3. cuda默认函数与c++冲突_好程序员Python教程系列-第8讲:函数和模块

    好程序员Python教程系列-第8讲:函数和模块,在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. 事实上,上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种 ...

  4. 程序员真实故事系列 ---阅读书籍计划

     [转帖][程序员真实故事系列@个人特别推荐阅读@] 标 题: 一个人的奋斗历程 这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公 开,希望能够为国内IT的发展尽自己一份微薄的力量 ...

  5. 《程序员的数学:7指数爆炸》

    本文属于<程序员的数学>读书笔记系列.本文内容相对比较容易. 什么是指数爆炸? 通过思考一张1mm的纸(假设可以无限次折叠),每次折叠厚度翻一倍,折多少次能够有地月距离39万KM那么厚,作 ...

  6. 程序员的数学入门书籍、小学生C++入门书籍、算法启蒙书籍等

    一.程序员的数学入门书籍 1.程序员的数学 第2版(2020.04) 2.程序员的数学思维修炼(趣味解读) 3.程序员的数学4:图论入门(2022.06) 4.数学女王的邀请 初等数论入门(2020. ...

  7. 相爱相杀:程序员的数学

    "要想成为一名优秀的程序员,需要学好数学吗?"今天不回答这个问题--让咱们换个角度思考下:想搞定数学吗,尤其是编程中必须掌握的那些数学思维?或者,单纯地,曾经数学伤透了你的心,现在 ...

  8. 程序员之网络安全系列(三):数据加密之对称加密算法

    系列目录: 程序员之网络安全系列(一):为什么要关注网络安全? 程序员之网络安全系列(二):如何安全保存用户密码及哈希算法 程序员之网络安全系列(三):数据加密之对称加密算法 程序员之网络安全系列(四 ...

  9. vue函数如何调用其他函数?_好程序员Python教程系列之递归函数与匿名函数调用...

    好程序员Python教程系列递归函数与匿名函数调用,函数是Python技术学习中重要的一个环节,深入掌握该阶段的知识内容,对于Python技术能力的提升非常有帮助,这里就针对递归函数与匿名函数两种函数 ...

  10. 一流程序员靠数学,二流程序员靠算法,低端看高端就是黑魔法

    简介 每个行业都会分等级,程序员也不例外!好一点的叫工程师,普通一点的叫程序员,差一点的叫码农,更差的还会叫码畜,码奴. 一流程序员靠数学, 二流靠算法, 三流靠逻辑, 四流靠SDK, 五流靠Goog ...

最新文章

  1. ali arthas 火焰图_带你上手阿里开源的 Java 诊断利器:Arthas
  2. Executor介绍
  3. CentOS 安装 VMware Tools 详细方法
  4. Map .NET Concepts to the Lightning Platform——list,set,map
  5. Java面向对象编程(中级)
  6. angularjs的三种注入方式
  7. UI基本设计素材模板|完整的线框图
  8. 关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】
  9. WinForm中的特殊窗体效果:渐变窗口和信息提示窗口
  10. 因子分析后如何进行聚类分析?
  11. xpath爬取美女图片
  12. 计算机帐务处理子系统只能在一级,2009年初级会计电算化考前冲刺精选题二
  13. linux dns访问日志内容格式,谢烟客---------Linux之DNS请求流程及资源记录定义
  14. 基于FPGA的CYUSB3014双向通信实验
  15. python 批量转换xls to xlsx,出现pywintypes.com_error: (-2147417848, ‘被调用的对象已与其客户端断开连接)’的问题处理
  16. mysql订单迁移es_京东到家订单中心系统mysql到es的转化之路
  17. 高校最低分数录取线c语言,全国: 2018年普通高等学校招生录取最低控制分数线...
  18. 安卓开发中获取服务器网络延迟(ping)
  19. mysql 所有字符集_mysql字符集
  20. 智能算法和人工智能算法,人工智能算法概念股票

热门文章

  1. webpack打包html中img,打包资源成功,图片引用错误,不能显示问题
  2. 做自由职业者是怎样的体验
  3. mysql2005错误码_SQL Server2005 常见错误及解决方案
  4. notepad如何自动对齐_notepad怎么对齐
  5. java 压缩pdf_Java 复制、压缩PDF文档
  6. 如何使用notepad++查看二进制bin文件
  7. Crystal Ball—甲骨文水晶球风险管理软件(概念以及实战——基础案例篇)
  8. 电脑广告太多,请避免安装这些软件
  9. linux 串口终端源码,LINUX 串口通讯源码
  10. html2bin.exe,hex转换成bin文件小工具(HEX2BIN.EXE)