0.先唠下嗑
数学,被称为“自然科学之母”,其对理性思维对培养至关重要。我在中学时代的确对数学十分喜爱,成绩也比较优秀。可不得不承认,自大一结束微积分+线性代数+概率论对学习后,我可以说没有再对数学进行过学习。今日用到的数学,除了潜移默化的、不好描述的、我也不太清的思维训练外,应用到的数学知识可以说仅限于初中及之前了。
可我心中一直隐藏着对数学的喜爱,固然我不妄想达到数学专业人员的水平,可的的确确想让自己拥有数学素养。当然也有功利性的一面,就是希望数学能够对我的职业发展助一臂之力。我学习数学的教材主要有结城浩的《程序员对数学》、吴军老师的《数学之美》、极客时间的知识专栏《程序员的数学基础课》,也会根据需要找一些课程学习。
由于数学学习并不是很急切的事情,在我的学习时间中大约占30%的比重,因此进度不是太快,3月份和4月份也主要先学习一些基础性的数学思维。为了与小伙伴们分享数学学习,也为了督促自己,我会将自己的学习总结以博客形式分享。
今天,就先从“数”说起。
1.古代文明的“计数”
数,在远古时代或许不需要,可随着文明的演进,古人们需要知道自己有几头羊、自己距离离家乡最近的湖泊有多远、食物会保存多长时间不变质等等。当古人仅靠经验来“计数”已经满足不了发展的需求时,“数”就产生来,它也和文字一起,和文明的进程相依相伴。这里,我们就先看下文明古国是如何计数的?
古埃及人使用五进制和十进制混合的计数法,5和10作为一个单元,用记号表示,这比较类似于我们投票时使用的“正”字计票法。这种计数法,不是我们今天通用的进制计数法(或者叫按位计数法)。
古巴比伦人使用表示1和10的两种菱形记号来表示1——59,并通过记号所在位置表示60进制的数位。这是一种10进制和60进制混合的按位计数法。现在通用的1小时=60分钟、1分钟=60秒,就是源于古巴比伦的60进制计数法。通过比较可以发现,在表示大数时,古巴比伦的进制计数法明显比古埃及有优势,很容易理解吗,写的短呗。
玛雅人计数时从0开始,使用的是20进制法。
-
中国人计数采用10进制,具体有文字计数法和算筹计数法。文字计数法,采用基本数字和数字单位两种基本的符号单元,前者用一、二、三、四、五、六、七、八、九共9个汉字分别表示1至9,后来又出现表示0的零和○,后者有一、十、百、千、万、亿、兆、京等21个,从一开始至万每级都是十进制的按位计数法。如 “五亿三万四千八百六十三”表示534863。算筹计数法,是用算筹的摆放来表示。算筹是用竹、木等制成用来表示数字的小棍,记数时有两种基本的摆放形式:
记数时,个、百、万等位上的数字用纵式,十、千、十万等位上的数字用横式,纵横交错进行。如果某位上数字为零,则空出相应的位置。它遵循十进位值制,同一算筹符号在不同的位置表示不同数字单位的倍数。如68012用算筹表示就是
罗马人使用5进制和10进制混合使用的罗马数字。以5为一个单元,计为ⅤⅩ;以10为一个单元,计为Ⅹ,同样,将50、100、500和1000分别计为L、C、D、M。它不是按位计数法,而是将左右数字相加,诸如Ⅵ表示6,LⅩ表示40。后来,又扩展了将数字列在左侧作为减法的表示法,比如Ⅸ表示9,ⅩL表示50。
印度人的计数现在通用的被称作的阿拉伯数字。它采用10进制,用10个数字即0、1、2、3、4、5、6、7、8、9来表示。这种方法最简洁,因而被广泛采用,成为了今天的通用计数方法。
2.“计数法”的关键
通过上面对文明古国计数法对阐述,可以发现计数法对两个关键——“基本单元”和“基本单元的组合”。基本单元越简单,基本单元的组合表示大数时越方便,它肯定越适用于我们。这也是为什么阿拉伯数字成为今天通用计数法的原因,简洁的10个符号、10进制表示。
而历史迈入近代后,数的急剧增大,仅靠10进制也满足不了需求了,指数计数法就应运而生了。
而在数的发展中,0的产生至关重要。在古埃及、古巴比伦、古罗马甚至早期的中国,都没有0的概念。为什么要这么一个表示“没有”的数字呢?看下上文举的算筹计数法示例就明白了,68012与6812,太容易理解错了。这个时候,需要一个“基本单元”来把百位给占了呀,于是,就有了0。这里,也可以做个总结,0的作用,就是在进制计数法中发挥“占位”的作用。
今天学习的内容,大致就这么多,很简单,也很“没用”,不过我自己在数学知识之外的收获,就是通过《程序员的数学》书上谈到的“问题分解法”,对“数”这一不易琢磨的概念有了认识。“问题分解法”,就是“将大问题分解成小‘单元’”。编程开发中的“面向对象”,也是同样的思想,将现实生活中的场景都分解一个个“对象”的组合,建模就有了,程序员们创造的花花绿绿的世界也就有了。
3.总结
最后,总结下主要内容:
- 计数法的两个关键——“基本单元”和“基本单元的组合”
- “进制计数法”与“指数计数法”的应运而生
- 基本单元“0”的“占位”作用
- “问题分解法”的策略,即“将大问题分解成小‘单元’”