《程序员的数学I》

不支持LaTex...

余数 周期性和分组

  • 思考:奇数和偶数

奇数是被2除余1的整数
偶数是被2整除(余0)的整数
除法就像分组,根据余数来确定属于哪个组

  • 理解余数就是分组

比较常见的奇偶性(parity)校验

  • 思考:如果今天是星期一,那么100天以后是星期几?

7的倍数,余几就加几呗

余数的力量

  • 思考:如果今天是星期一,那么
10的100次方

天以后是星期几?

  1. 可以直接计算吗?即便是计算机运算,也是非常大的计算量
  2. 并不需要急于求出10的100次方
    • 依次增加0,如:1, 10, 100, 1000, ..., 100,000,000,000
    • 发现规律,余数会在1、3、2、6、4、5这样的六个数中循环下去
    • 0的个数是100个(100次方),那么100/6 = 16余4
    • 同样,余几就加几呗

思考:大数 1234567的987654321次方


的个位数是多少?

  1. 既然是个位数,那么可以忽略123456,直接观察7
    • 7^0的个位数 = 1
    • 7^1的个位数 = 7
    • 7^2的个位数 = 9
    • 7^3的个位数 = 3
    • 7^4的个位数 = 1
    • 7^5的个位数 = 7
    • 7^6的个位数 = 9
    • 7^7的个位数 = 3
  2. 发现规律,周期为4的循环
  3. 987654321除以4余1,所以...
  • 思考: 奇偶校验(通信算法中的奇偶校验位应用)
  1. 魔术师闭上眼睛,桌面上放着七颗棋子,黑白两面,任意一面朝上。
  2. 魔术师的助手任意放一颗到第8个位置
  3. 观众可以任意翻转一枚棋子,或者选择不动
  4. 魔术师睁眼,一定可以知道是否观众翻转了棋子
    这就是奇偶校验的原理
  • 思考:哥尼斯堡七桥问题
    部分图文来自wiki
    哥尼斯堡七桥问题
《程序员的数学I》_第1张图片
七桥
  • 哥尼斯堡小城被河流分割成为四块陆地,人们为了连接陆地,建设了七座桥,现在你要找出走遍7座桥的方法,但是必须遵守如下条件:
  • 走过的桥不能再走
  • 可以多次经过同一片陆地
  • 可以以任一陆地为起点
  • 不需要回到起点

没错,真的很像一笔画

《程序员的数学I》_第2张图片
简化图

再简化一下,变成图

《程序员的数学I》_第3张图片
《程序员的数学I》_第4张图片
标识图
  1. A、B、C、D我们称之为顶点(Vertex),a、b、c、d、e、f、g我们称之为边(Edge)
  2. 顺便说一下,数学家莱昂哈德欧拉将此问题作为一笔画问题解决了,这就是图论的开山鼻祖
  3. 提示:考虑入口和出口
    • 顶点所关联的边数,称作该顶点的度数
    • 度数为偶数的顶点称为“偶点”,度数为奇数的顶点称为“奇点”
  4. 顺着图中的边走,在经过的边的端点处打勾,并减去顶点的度数,边走边减
  5. 如果该问题能够用一笔画通过的话,一定满足“所有顶点都是偶点,或者有两个奇点”
  6. 哥尼斯堡七桥不能被走遍

你可能感兴趣的:(《程序员的数学I》)