程序员必备的数学课
黄申
LinkedIn资深数据科学家
限活动获得
1 人已学习
课程目录
已完结 8 讲
01 | 作为程序员,为什么你应该学好数学?
02 | 程序员应该怎么学数学?
03 | 二进制:不了解计算机的源头,你学什么编程
04 | 余数:原来取余操作本身就是个哈希函数
05 | 迭代法:不用编程语言的自带函数,你会如何计算平方根?
06 | 数学归纳法:如何用数学归纳提升代码的运行效率?
07 | 递归(上):泛化数学归纳,如何将复杂问题简单化?
08 | 递归(下):分而治之,从归并排序到MapReduce
程序员必备的数学课
15
15
1.0x
00:00/00:00
登录|注册

04 | 余数:原来取余操作本身就是个哈希函数

黄申 2020-02-26
你好,我是黄申。今天我们来聊聊“余数”。
提起来余数,我想你肯定不陌生,因为我们生活中就有很多很多与余数相关的例子。
比如说,今天是星期三,你想知道 50 天之后是星期几,那你可以这样算,拿 50 除以 7(因为一个星期有 7 天),然后余 1,最后在今天的基础上加一天,这样你就能知道 50 天之后是星期四了。
再比如,我们做 Web 编程的时候,经常要用到分页的概念。如果你要展示 1123 条数据,每页 10 条,那该怎么计算总共的页数呢?我想你肯定是拿 1123 除以 10,最后得到商是 112,余数是 3,所以你的总页数就是 112+1=113,而最后的余数就是多出来,凑不够一页的数据。
看完这几个例子,不知道你有没有发现,余数总是在一个固定的范围内
比如你拿任何一个整数除以 7,那得到的余数肯定是在 0~6 之间的某一个数。所以当我们知道 1900 年的 1 月 1 日是星期一,那便可以知道这一天之后的第 1 万天、10 万天是星期几,是不是很神奇?
你知道,整数是没有边界的,它可能是正无穷,也可能是负无穷。但是余数却可以通过某一种关系,让整数处于一个确定的边界内。我想这也是人类发明星期或者礼拜的初衷吧,任你时光变迁,我都是以 7 天为一个周期,“周”而复始地过着确定的生活。因为从星期的角度看,不管你是哪一天,都会落到星期一到星期日的某一天里。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
返回
顶部