小议中国剩余定理兼怀金庸
本是几个月前整理完备hash构造时打算写的,不意拖到了金庸先生去世。《射雕英雄传》中那一次精彩绝伦的数学启蒙,不亚于光明顶上张无忌出尽风头的擂台秀。瑛姑与黄蓉的几轮口头交锋,涵盖了n阶幻方,多元方程,级数以及数论等多个方面的经典问题。童稚时也许你和我一样背过“二四为肩,六八为足……”,是不是钦佩金庸先生一丝不苟的装逼与博学,中学时候你有没有觉得黄蓉说她和老爹能解地元到天元19次的方程有点吹牛逼。大学学计算机的同学不知道有没有人与我一样惊喜,黄蓉口中的“一道老题”又一次进了课本,在信息领域仍有广泛的应用,例如完备hash构造。
瑛姑顿了顿,说道:“这第三道题呢,说易是十分容易,说难却又难到极处。今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?我知道这是二十三,不过那是硬凑出来的,要列一个每数皆可通用的算式,却是想破了脑袋也想不出。”
黄蓉笑道:“这容易得紧。以三三数之,馀数乘以七十;五五数之,馀数乘以二十一;七七数之,馀数乘十五。三者相加,如不大于一百零五,即为答数;否则须减去一百零五或其倍数。”瑛姑在心中盘算了一遍,果然丝毫不错,低声记诵道:“三三数之,馀数乘以七十;五五数之……”黄蓉道:“也不用这般硬记,我念一首诗给你听,那就容易记了:三人同行七十稀,五树梅花一枝,七子团圆正半月,馀百零五便得知。”
这个题在不同地方用的题面不一样,有用韩信点兵为题面的,也有如上这样直接问有物不知其数……
涉及到的一条数论定理也有不同叫法,有的叫“孙子定理”的也有叫“中国剩余定理”的
我们先把原问题明确一遍
求x使得:
写成同余方程组的形式就是
瑛姑的方法很暴力,谓之“硬凑”,虽然效率不高却是最容易编程实现的,暴力循环即可。
再来看一下黄蓉的答案是怎么操作的
三三数之,馀数乘以七十;
五五数之,馀数乘以二十一;
七七数之,馀数乘十五;
三者相加,如不大于一百零五,即为答数;否则须减去一百零五或其倍数。
用式子表示就是
那么这样操作为什么有效呢,虽然会背“三人同行七十稀”,这首诗为啥能行呢。
我们知道105是3,5和7的公倍数,如果x符合要求,那么x加上若干个105也是问题的解,对105取模只是为了得到最小的解。那么我们来看一下y=2*70+3*21+2*15是不是问题的解。
考虑第一个除项3,我们发现2*70 mod 3 = 2,而(3*21+2*15)可以看成一个整体,是被3整除的,无疑2*70+(3*21+2*15)mod 3 = 2,符合要求。对于第二个除项5,3*21 mod 5 = 3,而(2*70+2*15)被5整除,3*21+(2*70+2*15)mod 5 = 2,也是符合要求的。对于第三个除项7也是同理。
通过分析黄蓉给出的操作流程,我们可以总结出一个构造一元线性同余方程组的解的套路。就是已知m1,m2,m3是两两互质的正整数,求最小的正整数x,使它被m1,m2,m3除所得的余数分别为c1,c2,c3。求解思路就是我构造一个
其中M1应该是一个能被m2和m3整除的数,并且满足
我们发现第一句诗“三三数之,馀数乘以七十”得到的2*70=140显然不是最小的M1,更小的M1是35,可以通过拿最小公倍数105辗转相除观察余数得到,即
如果辗转相除最后余数不等于c1,那就把被除数扩大一下使它符合要求。例如黄蓉用70,被3除余1,那就把70扩大2倍用140。
中国剩余定理的完整表述可以在百科看到
而将中国剩余定理引入信息领域,用来构造完备hash,比较早的有台湾的张真诚,他在1984年写了一篇《The study of an ordered minimal perfect hashing scheme》。他与金庸一样能将老祖宗的智慧在新的领域以新的形式激活,作为华人深为之圈粉。
小议中国剩余定理兼怀金庸相关推荐
- 泡妞技术帖:一物降一物 金庸爷爷教你如何谈恋爱
就金庸大侠的小说来讲,对于女性人物塑造是武侠小说里面最成功的(没有之一),甚至许多言情小说都比不上(比如琼瑶奶奶),不管是适用面还是真实性上来讲,基本可以涵盖你日常生活能接触到的人了.so,下面开讲. ...
- 从金庸的武侠到数学的江湖
逝人已去,用这篇文章以作纪念! 金庸的武侠, 写的不光是武侠的世界, 还满含着生活的感悟.教育是生活中重要的一个部分,成了小说绕不开的主题. 我们先来看看金老先生对功夫习得的几个境界: 1. 勤习 ...
- 名人谈酒:李白、曹操、杜甫、金庸是这样评价酒的!
酒,能忘忧. 酒能消忧解愁,忘却生死利禄及荣辱,让人游乎四海之外,能给我们带来自由的欢乐. 图 李煜说:醉乡路稳宜频到,此外不堪行. 曹操说:何以解忧,唯有杜康. 李白说:五花马,千金裘,呼儿将出换美 ...
- 金庸笔下武功最强的十人
说明:没出过手的不算,而且每本书所处背景的武学程度不同,一般来说是朝代越往后武功越低,由此有资格参选的书有<射雕>三部曲,<天龙八部>,<笑傲江湖>.高手的武功取其 ...
- 金庸小说《倚天》和《神雕》的关系隐晦微妙,中间缺失的八十年里,份量最重的就是郭襄的一生沉浮
// 所有的技术,本人均拿 51kxd.com 这个本人的小网站来验证,欢迎大家访问 对许多金庸迷而言,郭襄可算是最受欢迎的女性角色了,且金庸的小说射雕三部曲中,倚天和神雕中间存留了将近80年间的 ...
- 世界上最会写爱情的人,其实是金庸
开篇之前,鱼叔先贴一首<天龙八部>的主题曲 今天,娱乐圈一半的明星都在祝他生日. 这个人叫-- 金庸 大抵,有一半的演员,都演过他笔下的人物. 林志颖→段誉 黄晓明→杨过+韦小宝 胡歌→郭 ...
- [转贴]金庸的九家著名公司
1.日月神教(<笑傲江湖>) 日月神教继承了明教的品牌,这条金庸未曾点明,但明眼人洞若观火:明 字拆为日.月.张无忌的明教被朱元璋窃取后,修成正果建立大明帝国,明教的另一半流落 民间而成为 ...
- 2008年攻读金庸武侠硕士研究生入学统一考试试题
2008年攻读金庸武侠硕士研究生入学统一考试试题 满分:150分 时间:180分钟 一.单项选择题(每空1 分,共30分) 1. 张无忌和赵敏第一次相遇是在______. A.听香水榭B.琴韵小筑 C ...
- 金庸的小说人生(1)
孔庆东 陈珺 吕小刚等 著 谁是读者最多的当代作家? 这个问题问过许多人,也许答案各异:但是不可避免的,一定有许多人会把票投给通俗小说,投给金庸. 三十一岁完成自己的第一本武侠小说,三十五岁创办自己的 ...
最新文章
- 洛谷 P3376 【模板】网络最大流
- 小白webpack进行nodejs 前端打包配置
- JS系统库:预定义对象(内建对象)
- ORB-SLAM2图像预处理流程概括
- passive 的事件监听器
- 让QT对话框显示中文
- ImageMagick的下载和配置
- Win 7退役,这些Linux发行版可以替代
- PDF权限密码怎么解除
- 广告数据定量分析:第一章——广告优化中的统计学
- C51单片机的初次使用
- PLC控制系统怎么抗干扰
- 读书笔记--认知突围
- fastposter 2.2.0 新版本发布 电商级海报生成器
- 模拟时钟:时钟根据时间转动
- DWI_preprocessing DTI_reduce commands
- Gstreamer 应用开发:1-基础介绍
- JAVA 身份证号码有效性验证
- 生活琐事随感 (r5笔记第43天)
- 2021年最具影响力的七起网络安全事件
热门文章
- window环境下运行linux解压命令,使用压缩的方式将Windows下的zip压缩包上传到Linux系统的方法解析...
- 计算机数据链路层协议之HDLC和PPP协议
- 南邮数据结构实验三---图的基本运算及飞机换乘次数最少问题
- 南京邮电大学计算机学院课程表,课程小结与评价表-南京邮电大学计算机学院.doc...
- 云客网教你让网站排名更好的方法
- win 2016 ssh_win仿苹果模仿MAC桌面,完美高仿主题推荐
- skydrive android,改头换面:微软SkyDrive改版 支持Android平台
- 业务知识栈——社会保险业务系统—基础概览
- Teleport 简易堡垒机系统
- 电子元件图片大全+++很全的彩图!