用数学理解世界

如果可以用一种简单的方式来理解世界,我想这种方式就是“数学”!

“宇宙之大,粒子之微,火箭之速,化工之巧,地球之变,生物之谜,日用之繁,无处不用数学”。

看起来像是魔法,理解之后就是数学,那啥叫数学呢?
数学就是数字的系统化科学,本篇先从数字入个门吧。

1. 数字是什么?
2. 计数系统
3. 数字美学

一、数字是什么?

1. 直觉在前,数字在后

要知道数字是什么?起源于什么?先来两个例子“一望冰山”吧:
1> 对早期依赖户外生存能力的原始部落来说,当不同部落之间发生冲突,大家互相挥舞着长矛,需要立刻决定的问题是:打?还是跑?需要领导者快速判断双方人数差异,对方人少就打,对方人多咱就跑。

2> 路边看到两棵果树,去采摘哪一棵果树呢?就需要立刻判断出哪棵树上的果实更多。

这两个例子都是没有必要一一数出每一个人数、每一颗果子,最关键的是快速估计出相对数量,而这种估计就是人类对于数量的直觉,即对比关系。
在现代数据分析方法ABtest中,最关键的就是对事物提出对比假设,再进行数字化验证,假设很大程度依赖直觉,而数字是对直觉的确认,那么直觉与数字的关系是什么样的呢?接着往下看。

2. 实验:数学教育对直觉的影响

2004年卡内基-梅隆大学的罗伯特·西格勒(Robert Siegler)和朱莉·布思(Julie Booth)对幼儿园学生(平均年龄为5.8岁)、一年级学生(6.9岁)和二年级的学生(7.8岁)做了数轴实验:一条线,左右两边随机展示一些点,中间有光标,学生来指出这组点应该在什么位置,通过重复点击来测试不同程度的数学教育会如何分配从1-100之间的数字。

结果显示(如图),随着我们对数字越来越熟悉,我们的直觉也逐渐被固化。
1> 对于没有受过正规的数学教育的幼儿园学生,他们会按曲线绘制出数字;
2> 小学一年级的学生们因为开始学习数字和符号,所以他们的曲线变直了一些;
3> 小学二年级的学生绘制出的数字终于沿着直线均匀分布了。
ps:这组数据没有找到源数据,就从材料中拍图截取吧,不要吐槽博主哈哈哈~

理论上实际值与估计值绘制出来应该是一条从0开始的45°斜直线,而实际结果是数字越大线条越平缓,斜率越小,也就是大数字间的距离比小数字间的距离在感觉上更近,如:80和100之间的距离20,比20和40之间的距离20,在感知上要小一些。

这个实验说明:我们的直觉很多时候是与现实是不匹配的,可能会有感觉误差,因此需要科学的方法来做决定,也就是现在企业追求的数据决策,做出更靠谱可信赖的判断。

3. 印度数学的发展

历史上有过非常多的计数方式,革命性的计数系统是由印度人发明的阿拉伯数字系统,使用10个数字:0、1、2、3、4、5、6、7、8、9,接下来我们要聊的是基于阿拉伯数字系统的吠陀数学速算技巧。

20世纪初,印度哲人巴拉蒂·克里希纳·第勒塔季在由梵文著成的古代《吠陀经》中发现了这套技巧,速算技巧基于16句格言,并不来自《吠陀经》中记录的某一段文字,而只能根据“直觉启示”感知到,并将感知到的方法统称为“吠陀数学”,这相当于有人在金刚经中找到了解一元二次方程的解法,太太太哇塞了!

吠陀算法的主要特点是可以将复杂的问题分解为简单的步骤,并使用特定的规则和技巧进行计算。

其中最著名的技巧是“补数法”,如:计算1000-456,前面所有数字从9开始减,最后一个数字从10减,拆分为9-4=5,9-5=4,10-6=4,结果是544。

16句格言讲述了特定的规则:
1/2/3:比以前的1多了1、比以前的1少了1、全部从9开始&最后从10开始;
4/5/6/7/8:垂直和交叉、转置和应用、通过加和减、和的乘积、所有乘数;
9:如果《集论》是相同的,它是零;
10:如果一个是成比例的,另一个是零;
11/12/13/14:完成或末完成、通过亏空、具体和普遍、微分学;
15/16:最后一位的余数、最后一个和两次倒数第二。

是不是有点迷糊啦?别着急,举个简单的例子理解一下(如图):
1> 吠陀算法:先做减法、再做对角线加法、然后右侧数字相乘,最后拼起来;
2> 长乘法:逐个位置数字相乘,再累加。(小学数学学的就是长乘法)

那么再复杂一些的数字如何计算呢?感兴趣的朋友可以自己研究哦~

二、计数系统

1. 啥是计数系统?

假设没有数字,失眠的时候,怎么数羊嘞???
Action:羊、羊羊、羊羊羊、羊羊羊羊、羊羊羊羊羊、羊羊羊羊羊羊...

是不是很着急,可能直接放弃羊(了个羊)了,有数字之后,就可以1只羊、2只羊、慢悠悠数过来,有没有感受到计数系统的强大?!

在人类历史发展过程中,生活在不同地区的人发明了不同的计数系统和方法,如:以α/β/γ...等27个字母为基础的希腊计数法、以I/X/C/M/V/L/D为基础的罗马计数法,以及用手指关节计数的方法。

一个好的计数系统要满足哪些条件呢?

1> 基数必须足够大,但也不能太大,这样在表达100这样的数字时,才不会喘不过气,也不需要记忆太多的东西;
2> 符合人的行为习惯,历史上常见的基数是:5、10、20,很大程度的原因是这些数字来自人体,5个手指、10个手指、再加上10个脚趾。
印度人发明的阿拉伯数字系统恰好、或者说完美地满足了所有要求,使用10个数字:0、1、2、3、4、5、6、7、8、9,且基数为10。

2. 常见的进制有哪些?

二进制(Decimal system)
用数字0、1表示,基数为2,满2进1位,最常见的是二进制使用场景是计算机控制系统。
为什么二进制适用于计算机控制系统呢?
最主要原因是二进制数只有0和1两种状态,与计算机内部的逻辑电路的开关状态非常相似,运算规则要比其他进制的数简单得多,这有利于提高计算机的运算速度,每个数字为一个比特,相比之下,其他进制的数表示方式需要更为复杂的电路和算法才能实现。

十进制(Decimal system)
用数字0、1、2、3、4、5、6、7、8、9表示,基数为10,满10进1位,是人们日常生活中最常使用的一种进制。
为什么十进制适用于人类呢?
可能是因为人类的大脑在进行计数时,习惯于将数量转化为手指的数量或者位置,而我们的手指有10个,这使得我们的大脑更容易接受十进制的计数方式。

十二进制(Duodecimal system)
通常用数字0~9以及字母A、B来表示,其中,A代表10,B代表11,以12为基数,满12进1位,常见的十二进制使用场景如:一打(12)、一罗(144=12^2)。
十二进制的整除属性比十进制要好一些,如:12可以被2、3、4、6整除,而10只能被2、5整除,在日常生活中,更有可能把一个数除以3或者4,而不是除以5。

下图是十二进制的乘法表,帮助理解十二进制的具体数字展示。
(十进制转十二进制数值的方法:十进制数除以12得到倍数的整数部分用十二进制表示,拼接余数部分的十二进制表示。)

六十进制(Sexagesimal system)
使用0-59来表示,以60为基数,满60进一位,常见使用场景如:秒、分钟,以及中国的六十甲子。
据记载1793年法国试图将时间转变为十进制,也就是每天有10小时、每小时有100分钟、每分钟有100秒,一天变成了100000秒,而不是原来的86400(24*60*60)秒,时间十进制的秒比原来的秒会短一些,导致时间感知晕头转向,短短6个月改革就被放弃了,十进制在时间上的失败是十二进制、六十进制取得的小小胜利~

三、数字美学

1. 数学中最迷人的曲线之一“对数螺线”

先了解一下啥是黄金比例,即一条线段被切分成两段,原线段与较长部分的的比例=较长部分与较短部分的比例,这个比例约为1.618,也就是黄金比例,堪称自然界最美的结构比例。

对数螺线就是基于黄金矩形绘制出的一条曲线:
1> 把一个长宽比例为1.618的黄金矩形,切分出一个正方形,剩余部分仍然是一个黄金矩形;
2> 以正方形的一个角为圆心,画1/4圆;
3> 重复切分出正方形+画圆弧线,就得到一条对数螺线(如下图所示)。

对数螺线的基本性质是:不会随着图形的发展而改变,即螺线本身具有相似性,任何一个较小部分与较大部分相似。
它最有魅力的一点是:永恒

2. 为什么赌博会输?

对于这个问题,接下来会用随机数模拟赌博结果,来说明为什么赌博会输,在模拟数据之前,先说明三个基本点:
1> 对经济利益的渴望,更具体点就是“博彩业”,让人们开始研究获胜的可能性,概率就是可能性的数字化表达,将不可预测性变得可预测;
2> 赌博的前提是随机事件,即随机事件与你的想法无关;
3> 赌徒破产原则,指一个赌徒在赌博中,无论他赢得多少,只要他继续赌博,最终他就会破产。

用R语言模拟抛硬币实验:
假设有6个人,分别抛100次硬币,正面朝上记为1,反面朝上记为-1,将每次结果累加,绘制6个人抛硬币结果的随机游走曲线,如下图所示。

从这个图可以发现随着抛出次数的增多,曲线波动越来越大,假设抛硬币游戏变成了赌博,唯一让它停止赌博的方式就是钱=0
同时这个现象说明赌博对富人有利,因为富人不仅需要更长的时间才会破产,而且还有更多的机会让随机游走向上延伸。

附:随机游走曲线的Rcode

library(reshape2)
library(ggplot2)
# 定义N个人参与赌博、n次赌博
N<-6
n<-100
data_sample<-as.data.frame(matrix(0,n,N)) # 创建矩阵
data_sample$label_x<-1:nrow(data_sample) # 生成抛硬币的次数列
for (j in 1:N) {
 data_sample[,j]<-as.data.frame(sample(c(-1,1), # 随机生成的值序列,1代表正面、-1代表反面
 n,
 replace = TRUE,
 prob = c(0.5,0.5))) # 概率
 }
# 将每次抛硬币结果逐个值累加
for (j in 1:N) {
 for (i in 1:n) {
 if (i==1){
 data_sample[i,j+N+1]<- data_sample[i,j]
 } else {
 data_sample[i,j+N+1]<-data_sample[i,j]+data_sample[i-1,j+N+1]
 }
 }
 }
data_sample<-subset(data_sample,select = c((N+1):(N*2+1)))
data_sample<-melt(data_sample,id.vars = c('label_x'),variable.name = 'v1') # 绘制曲线
ggplot(data_sample,aes(x=label_x,y=value,group=v1,color=v1))+
 geom_line()+
 labs(title="抛硬币随机游走曲线")+theme(legend.position="none") # 隐藏图例

文末:博主超级喜欢对数螺线,因为它“任尔变换,不忘初心”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值