程序员的数学---数学思维的锻炼

第三章: 余数–周期性和分组

星期问题

来看一道简单的题目:今天星期日,那么 100 天以后星期几?
这个问题最笨的方法就是数数了。不过那样也是颇为费事,从余数方向考虑:一个礼拜 7 天,100 天等于 14 个礼拜周期还剩两天(100 = 14*7 + 2)。于是答案就是星期 2 了。

假设现在题目变成了 1 亿天之后是星期几,我们还是可以用取余的思想:100000000 = 14285714*7 + 2 。同样的, 答案也是星期 2 。

如果数字再大一点,10^210 天之后是星期几呢?这么大的数字,如果用计算器直接计算肯定是不行的,一般的编程语言也没有存这么大数据的整形数据类型。我们这一次还是利用余数的思想:

10^0 = 1 除以 7 结果为 0 余 1
10^1 = 10 除以 7 结果为 1 余 3
10^2 = 100 除以 7 结果为 14 余 2
10^3 = 1000 除以 7 结果为 142 余 6
10^4 = 10000 除以 7 结果为 1428 余 4
10^5 = 100000 除以 7 结果为 14285 余 5 

10^6 = 1 除以 7 结果为 142857 余 1
10^7 = 10 除以 7 结果为 1428571 余 3
10^8 = 100 除以 7 结果为 14285714 余 2
10^9 = 1000 除以 7 结果为 142857142 余 6
10^10 = 10000 除以 7 结果为 1428571428 余 4
10^11 = 100000 除以 7 结果为 14285714285 余 5 

10^12 = 1 除以 7 结果为 142857142857 余 1

我们已经可以看出规律了,余数以 1、3、2、6、4、5 的顺序循环,也就是说,1 后面每增加 6 个 0,余数也即星期数和增加前相同。那么 10^210 天后的星期数为 210(1 后面一共 210 个 0) % 6 的值对应上述循环的结果(1(下标为 0)、3(下标为 1)、2(下标为 2)、6(下标为 3)、5(下标为 4)、4(下标为 5)),即为星期 1。

乘方的思考题
1234567^(987654321) 的个位数是什么? 手算?计算器?事实上这两种方法都行不通,原因就是因为数字太大了。**事实上,一个数的 n 次方的末位数只和这个数本身的末位数和 n 有关。** 我们来看一下:
1234567^0 的个位数 = 1
1234567^1 的个位数 = 7
1234567^2 的个位数 = 9
1234567^3 的个位数 = 3

1234567^4 的个位数 = 1
1234567^5 的个位数 = 7
1234567^6 的个位数 = 9
1234567^7 的个位数 = 3

1234567^8 的个位数 = 1
1234567^9 的个位数 = 7

我们发现规律了:个位数是1、7、9、3 这四个数的循环。所以 1234567^(987654321) 的个位数其实就等于 987654321 % 4 的结果对应1、7、9、3 这四个数就可以了:因为 987654321 % 4 = 1,所以答案是 7。
即 1234567^(987654321) 的个位数为 7 。

哥德堡的七桥问题

这个问题源于一个故事:很久以前,一个叫哥尼斯堡的小城,小城被河流分成了 4 块陆地(图中编号为 A、B、C、D)。人们为了连接这些陆地,建立了 7 座桥:
这里写图片描述
现在问题是需要寻找出走遍 7 座桥的方法,但是需要遵守以下条件:

1、走过的桥不能再走
2、可以多次经过同一块陆地
3、可以以任意陆地为起点和终点

其实这个就是 “一笔画” 的问题,如果每一种情况都去试一下的话,是相当复杂和有难度的。我们来考虑简化一下问题模型:将陆地简化成图的顶点,把桥简化成图的边,那么这个问题就可以创建出以下的模型:
这里写图片描述
我们仔细思考一下,假设对于这个图我们可以找出符合规则的走法,那么每当经过一块陆地时(一个图顶点),如果这个顶点不是起点或者终点,该顶点的度(边)应该减 2 (走到这块陆地需要消耗一座桥,走出这块陆地需要消耗一座桥)。那么扩展到全图的顶点来说,除了起点和终点,其他所有顶点的度应该是 2 的倍数(即为偶数),因为每经过一个块陆地都需要消耗和这块陆地相连的 2 座桥。
而对于起点和终点来说呢?因为没有限制起点和终点是否可以相同,那么需要分两种情况:

1、起点和终点为同一个点:这种情况下,我们从一个点开始最后还要回到这个点,
	所以这个起点的度也需要是 2 的倍数(偶数),此时图中所有的顶底的度应该为偶数;

2、起点和终点不是同一个点:这种情况和上面情况相反,需要满足起点和终点的度为奇数,
	所以此时图中应该有两个顶点的度为奇数,其他顶点的度为偶数。

好了,我们已经知道了规律了,如果一个图可以按照上述定义的条件走完,那么其中顶点应该满足以下两个条件之一:

1、图中所有的顶点的度为偶数
2、图中两个顶点的度为奇数(对应起点和终点),其他顶点的度为偶数

我们回头再看一下上面我们建立的图模型:其中所有顶点的度都为奇数,因此对于上述图我们无法找出符合上述规定条件的走法。

课后对话
学生:老师,我的人生出现了 360 度的大转弯呢! 老师:360 度的话,不就没发生变化吗?

第四章: 数学归纳法

数学归纳法是证明有关于整数的结论对于 0 以上的所有整数(0、1、2、3、4…)是否成立时所用的方法。

假设现在要用数学归纳法证明:结论 P(n) 对于 0 以上的所有整数 n 都成立。我们需要经过两个步骤:

步骤1:
	证明 P(0) 成立;
	
步骤2:
	证明不论 k 为 0 以上的哪个整数,若 “P(k) 成立,则 P(k+1) 也成立”。

步骤 1 中,要证明 k 为 0 时结论 P(0) 成立,我们称其为 基底
步骤 2 中,要证明无论 k 为 0 以上哪个整数," 若 P(k) 成立,则 P(k+1) 成立"。我们把步骤 2 称作 归纳
如果步骤 1 和步骤 2 都能得到证明,就证明了 结论 P(n) 对于 0 以上的所有整数 n 都成立

高斯的结论

在你面前有一个空的存钱罐。
第一天往存钱罐里投入 1 元。
第二天往存钱罐里投入 2 元。
第三天往存钱罐里投入 3 元。
第四天往存钱罐里投入 4 元。
第五天往存钱罐里投入 5 元。
那么第 100 天投入前之后总金额为多少?
这个问题其实就是求 (1 + 2 + 3 + 4 + … + 100)的值。如果我们没有学过等差数列等一些数学知识,最容易想到的方法就是逐个想加了。数学王子高斯 9 岁时候也遇到了这个问题,高斯用了一个很巧妙的方法,很快就得出了答案。
高斯是怎么算的呢:
1 + 2 + 3 + 4 + … + 100 顺序计算的结果和 100 + 99 &#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值