《The Joy of X》

来到园子已经几个月了,平时也就看看新闻、招聘信息,偶尔也会看看技术文章。作为一名非计算机专业的学生,我深深地被技术的魅力所吸引。就在半个多月前,我开通了自己的博客,以便记录自己的成长经历,也能与园子里其他人交流。
大学对我来说最美好的就是有足够的时间可以做自己喜欢的事情,所以我才有机会读更多的书,有更多的时间学习一些新技术。这第一篇博文就是关于自己最近读过的一本书《X的奇幻之旅》。
类似于之前读过的基于网络文章编著的《黑客与画家》、《Python基础教程》,《X的奇幻之旅》是世界级数学家Steven Strogatz基于其在《纽约时报》的专栏文章编著的(这类书从网络文章开始,整理成书,到国内读者拿到手上的中文版本历经数年,但书中的观点仍很有说服力),起初是为了让非数学专业的读者领略数学的魅力。在书中你会看到数学如何与文学、哲学、法律、医学、艺术、商业彼此交融,甚至流行文化也能以我们意想不到的方式和数学共舞。
“敌人的敌人就是朋友”与“负负得正”法则
在看本书之前,我对“负负得正”的理解仅限于以前数学课本中的知识,竟不知生活中有些事情可以用“负负得正”法则来解决。书中举得例子是很多历史学家对第一次世界大战前的国际形势的分析模型。
要想达到一种稳定的状态,除了“各方都友好”之外,另外“冷战”也是不容易想到的一种稳定的关系结构。在“冷战”中,网络中的所有人分为两大敌对阵营,同一阵营里的所有人互为好友,而与对方阵营里的每个人都互为敌人。这是唯一一种能与“各方都友好”型关系网相媲美的关系结构。因为不难看出,任何分出3个阵营的关系网都会使关系网中的某些三角形处于不均衡状态。
为了解决相互关系中的不均衡性,6个国家不断地重新结盟或关系破裂,但每次的变化又造成了关系网中新的不均衡性。最终欧洲分裂成了两个势不两立的敌对势力,这样的网络关系在理论上是稳定的,但两大阵营的对立关系最终把整个欧洲拖进了战争的深渊。
只要能从纷繁复杂的表象中提炼出事物的抽象本质,负数运算这种看似与现实世界关系不大的数学技巧,其实可以帮助我们解开很多现实生活中的难题,看清很多现象背后的必然趋势。
应用题:冷热水龙头一起灌满浴缸需要多长时间?
如果只开冷水龙头,灌满浴缸需要半个小时;如果只开热水龙头,灌满浴缸需要一个小时。问:如果把冷水龙头和热水龙头同时打开,灌满浴缸需要多长时间?
作者清楚地记得他10岁左右第一次听到这个问题,脱口而出45分钟,相信也有一些人会给出同样的答案。我们只要思考两种极端情况,就可以立刻判断出45分钟这个答案绝对不可能是正确答案。如果只开冷水龙头,需要半个小时灌满浴缸;如果再同时开热水龙头,灌满浴缸肯定小于30分钟。
当他和妻子讨论这个问题时,妻子用类比的方法给出了她自己的解释。假设一个老太太要过马路:如果无人帮助,老太太过马路需要60秒;而你单独过马路则很快,只要30秒就够了。那么,要是你去搀扶老太太,你们手挽手一起过马路需要多长时间?这个问题的答案就是45秒。
那么,浴缸问题和老太太过马路问题的区别在哪里呢?那就是,你和老太太一起过马路的时候,你们会互相影响对方的速度。而在浴缸问题里,两个水龙头虽然在同时放水,但是放水的速度是完全不受对方影响的。可惜我们的潜意识没有那么敏锐,无法第一时间发现这个重要区别。尤其是当我们急于立刻给出答案的时候,我们就在直觉思维的带领下直奔那个错误的答案去了。
微分几何:两点之间最短路径不止一条
正是在微分几何的基础上,人类才得以建起一座新的智慧丰碑——爱因斯坦的广义相对论。微分几何的技术细节虽然十分高深,但是它的核心理念却是非常简单而美丽的,任何人只要骑过自行车、见过地球仪,或者玩过橡胶环,就应该可以理解微分几何的核心理念。
假设你在地球的表面上骑着一辆小自行车,试图沿着某条既定的路线前行。如果这个既定路线是大圆,那么你就可以时刻保持前轮笔直朝前。从这个意义上讲,大圆就是地球表面最直的线(就像平面上两点之间直线最短一样,球面上两点间的最短距离是大圆)。
用微分几何寻找两点间最短距离的另一个更加实用的例子,是互联网流量的疏导问题。在这里,我们要处理的“面”不是那些平滑的表面,而是数不清的网址和链接形成的庞大迷宫。在互联网流量疏导的问题中,我们要研究的是算法的速度——找出一个网络中最短路径的最快算法是什么?我们必须感谢数学家和计算机专家的惊人智慧,要不是他们成功地解决了这个极其困难的问题,我们上网时网速会慢得让人难以忍受。
当你找不到一条简单的直线时,你需要懂一点微分几何学知识,才能找到两点间的最短路径。在人生路上,如果看不到通向目标的坦途,你也不必灰心,学一点人生的微分几何学吧。
如果你正在为前途而烦恼,别忘了,两点之间的最短路径不止一条。这是数学给我们的鼓励和祝福。
另外,知道某些名词的“词根”,对我们理解数学术语很有帮助,对其他学科也同样有用。
正弦波是大自然中各种形状的基石,它就像原子一般重要:没有原子就没有任何物质,没有正弦波就没有任何形状和组织。在拉丁语中“sine qua non”意为某物产生的必不可少的前提和先决条件,其中的sine恰好与英文中的”正弦“一词拼写一致。
“向量”(vector)一词来自拉丁语词根vehere,意为“携带”。我们今天所使用的“车辆”(vehicle)、“传送带”(conveyor)等单词也都来自同一个词根。这也是为什么vector一词除了可解释为“向量”以外,还可以解释为“传染媒介”。对流行病学家来说,vector是病原的携带者,比如把疟疾传染给病人的蚊子就是一个vector。对数学家来说,vector则是把你从一个地方带到另一个地方的“脚步”(当然,这只是向量最简单的意思)。
相信很多人在读完这本书后,会和我有一样的心情:哇,这真是一场激动人心的数学之旅。对数学也有了新的认识:原来数学竟可以与生活如此交融,太不可思议了。
《The Joy of X》的更多相关文章
- 《Entity Framework 6 Recipes》中文翻译系列 (13) -----第三章 查询之使用Entity SQL
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-4使用实体SQL查询模型 问题 你想通过执行Entity SQL语句来查询你的实 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (15) -----第三章 查询之与列表值比较和过滤关联实体
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-8与列表值比较 问题 你想查询一个实体,条件是给定的列表中包含指定属性的值. 解 ...
- .Net中的AOP系列之《间接调用——拦截方法》
返回<.Net中的AOP>系列学习总目录 本篇目录 方法拦截 PostSharp方法拦截 Castle DynamicProxy方法拦截 现实案例--数据事务 现实案例--线程 .Net线 ...
- 《深入理解Java虚拟机》类文件结构
上节学习回顾 在上一节当中,主要以自己的工作环境简单地介绍了一下自身的一些调优或者说是故障处理经验.所谓百变不离其宗,这个宗就是我们解决问题的思路了. 本节学习重点 在前面几章,我们宏观地了解了虚拟机 ...
- 《深入理解Java虚拟机》虚拟机性能监控与故障处理工具
上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念 ...
- 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! ...
- 转载:TypeScript 简介与《TypeScript 中文入门教程》
简介 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构 ...
- 【读书笔记】2016.12.10 《构建高性能Web站点》
本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...
- 《明解c语言》已看完,练习代码此奉上
2016年9月20日至2016年11月12日,从学校图书馆借来的<明解c语言>看完了. 大三第一个学期,前8周,有c语言程序设计的课.课本是学校里的老师编写出版的,为了压缩空间,减少页面, ...
随机推荐
- 流畅的python第十章序列的修改,散列和切片学习记录
只要实现了__len__和__getitem__两个方法即可将该类视为序列. 切片原理 动态存取属性 如果实现了__getattr__方法,也要定义__setattr__方法,以防对象行为不一致
- 云计算之路-Azure vs 阿里云:从负载均衡中摘/挂虚拟机
@小尾鱼 在 试用Azure:上不了高速的跑车,无法跨Cloud Service的DNS服务器一文的评论中提了一个很好的问题: 问个问题,使用了负载均衡以后,程序发布的时候博客园是怎么避免用户访问到正 ...
- C++ Primer笔记2_四种类型转换_异常机制
1.类型转换 命名的强制类型转换: 有static_cast.dynamic_cast.const_cast.reinterpret_cast static_cast: 编译器隐式运行的不论什么类型转 ...
- Solidworks如何添加齿轮
打开ToolBox,找到GB,动力传动,齿轮,正齿轮,然后拖放到绘图窗口(切记要在装配图里面弄,不是在单个零件里面弄) 设置齿轮的参数,一般只需要设置模数,齿数,面宽,类型,总长度(面宽就是有齿轮 ...
- Win7如何重建桌面图标缓存
[已解决] windows7快捷方式图标丢失的解决方案(已解决) windows7快捷方式图标丢失的解决方案转自:http://iso1.com/2010/01/14/how-to-restore-w ...
- vue - 条件语句
1.与小程序不同之处一,小程序无论变量还是常亮都可以用双向绑定来解决{{}},而vue一旦双(单)引号包起来以后就失效了. 2.注意一点,切记双引号注意不要混淆哈,这里是一排双引号包单引号,那里是一排 ...
- 1000个经常使用的Python库和演示样例代码
以下是programcreek.com通过分析大量开源码,提取出的最经常使用的python库. 1. sys (4627) 2. os (4088) 3. re (3563) 4 ...
- Odoo8.0安装wkhtmltopdf报表运行环境
#下载 #注意根据操作系统选择相应版本 (旧地址)wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.1/wkhtmltox ...
- JavaScript | JQuery插件定义方法
参考 http://www.2cto.com/kf/201507/417874.html ——————————————————————————————————————————————————————— ...
- Spring MVC 单元测试异常 Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file
Sping 3.2.8.RELEASE + sping mvc + JDK 1.8运行异常. java.lang.IllegalStateException: Failed to load Appli ...