当前位置: 首页 > news >正文

「π」里藏着所有人的银行卡密码和生日?

作者:数据叔

来源:大数据

导读:3月14日是圆周率节,是全人类的传统节日。自古以来,在3月14日这一天,世界各族人民会吃一个派庆祝节日,祈求好运,亲友之间也会互赠苹果派、蓝莓派、草莓派、蛋黄派、巧克力派……表达爱意和祝福。

本文并不是哪家食品公司的广告,数据叔只是想皮一下,然后再说说正经的:π这个数字到底有什么魔力,能让全世界的极客联合起来,为它创造一个节日?

01 π里藏着所有人的银行卡密码?

π是无限不循环小数,也就是说π小数点后面的数字是无穷无尽的,并且是毫无规律的。

但盯着这些数字看,你可能会根据自己的主观需求给这些数字赋予一些特殊含义。比如,数据叔有个小学同学,是某年9月26日出生的。学习π的时候,这位同学就很自豪地说π里有他的生日(3.1415926),让我们这些小伙伴羡慕不已,感慨自己生错了时代日期。

那么如果是更多位的“特殊含义”的数字呢?比如,每个人的银行卡密码都是6位,那么问题来了,π小数点后面,是否会有连续的6位数字,恰好是你的银行卡密码?

1. 银行卡密码

数据叔找到一个查询特定数字组合是否会出现在π小数点后前20亿位的网站,玩了一个下午,你也可以去玩一下,网址是:

http://www.subidiom.com/pi/pi.asp

接下来说说数据叔都玩了什么。首先,我试了一下被称为“最烂密码”的123456:

结果,123456这个组合在π中是存在的,从π小数点后的第2,458,885位开始出现。

然后,数据叔试了一下自己的银行卡密码,结果也没逃脱π的魔掌。截图就不上了。

实际上,早有大神跑过一个程序,证明了所有的6位数字组合——从000000到999999,都会出现在π的小数点后面,最后出现的组合是569540,位于小数点后14,118,307位[1]。所以,上面那个网站提供的前2,000,000,000位,有点资源过剩。于是,数据叔就想延长数字组合的长度,挑战一下这个网站的极限。

2. 生日

每个人的生日都可以用一个8位数字组合表示。π是一个超越数,数据叔就想到了最近忙着带盐编程大赛的杨超越。某百科资料显示,杨超越的生日是19980731,到网站查询一下,结果杨超越没能超越π的前20亿位:

再试试程序猿的老婆新垣结衣的生日19880611,结果也一样:

与银行卡密码的情况相同,也有大神在π的10亿位之内跑出了所有人的生日。但如果我们再增加数字组合的长度呢?

3. 手机号

中国大陆的手机号码都是11位,郝云有一首歌叫《结了》,歌词里唱出一个手机号:13910733521(这是真实存在的手机号,归属北京移动,但我劝你没事不要骚扰人家),我们就先试试这个手机号:

结果是,π小数点后的前20亿位中不包含这个数字组合,数据叔第一次“赢了”π。

数据叔又试了自己的号码,也是不存在;又打开通讯录,试了几个朋友的号码,还是不存在。你也可以拿自己和朋友的手机号试一试。看来,数字组合延长到11位,就没那么容易出现了,但我们也只是查询了π小数点后的前20亿位而已,π小数点后面还有无穷无尽的位。

02 圆周率钢琴曲:请开始你的表演

有人把数字写进歌词,还有人直接把数字改编成钢琴谱。YouTube用户aSongScout上传了这首“圆周率钢琴曲”:

03 什么是无理数?是没有道理的数吗?

无理数,即无限不循环小数,不能写作两整数之比。若将它写成小数形式,小数点之后的数字有无限多个,并且不会循环。

π不但是无理数,而且是超越数。超越数是代数运算不能操作的数。举例来说,根号2是无理数,但根号2可以用一个代数等式来表达:y=x2-2。而π却不能通过这样的等式表达。超越数无法通过加、减、乘、除、指数和求根运算的代数等式来描述。

很久很久以前,追求完美的数学家们非常不待见无理数,甚至还酿成过惨案。《数学极客》一书中写道:

很多人也说,之所以称之为无理数是因为它们根本就没有道理,它们仅仅是存在即合理的体现罢了。

它们其实是有道理的,但是它们让很多数学家觉得不舒服。

《数学极客》中还提到了一个无理数引发的惨案:古希腊时期,毕达哥拉斯(Pythagoras)的学生希帕索斯(Hippasus)证明了根号2不能表示成任何两个整数比值。但毕达哥拉斯坚信数字是完美的,不能接受无理数的存在。

当他分析了希帕索斯的证明后,没有能够从中找到错误的地方,因此他变得恼羞成怒,一怒之下,把可怜的希帕索斯给淹死了

04 圆周率节,我们是认真的

随着人类文明的进步,无理数也终于“翻了身”,不但被接受,而且像π、e、φ等特殊无理数都聚集了一群极客粉丝团,建立了文化生态。

1988年3月14日,物理学家Larry Shaw在旧金山探索中心组织了一场圆周率节(Pi Day)庆祝活动。这是我们迄今可以考证的人类历史上最早的圆周率节大规模庆典。参与者围绕着一个圆形空间散步,然后,他们吃了水果派。(没有传统美食的节日都是耍流氓。)

▲一个圆周率节促销售价3.14刀的派,拍摄者:TJRC,来源:Wikimedia Commons

此后,旧金山探索中心每年都会继续举办圆周率节庆祝活动。2009年,圆周率节(Pi Day)及其名称甚至得到了美国众议院的官方确认[2]

类似的庆祝活动逐渐在世界各地兴起,并在互联网时代,从线下发展到了线上。圆周率节的网站(piday.org)也被建立起来,除了π和圆周率节的一些科普内容外,这个网站还在卖产品——一款名叫覆盆子派(Raspberry Pi)的电路板。

2010年3月14日,Google上线了圆周率节Google Doodle,设计中包含了π值范围,圆的周长与面积公式,球体、圆柱体体积公式等元素。

▲2010年3月14日的Google Doodle

2018年3月14日,为纪念Larry Shaw“发明”圆周率节30周年,Google上线了另一款圆周率节Google Doodle,并拍摄了大厨Dominique Ansel制作这个派的视频。于是,跟2010年的Google Doodle相比,2018款看起来很……好吃!

▲2018年圆周率节的Google Doodle,派的“周长”与“直径”用不同食材制作,构成等式C/d=π

另外,3月14日对于极客们来说也真是非常特别一天:1879年3月14日,爱因斯坦出生;2018年3月14日,霍金逝世。

说了这么多,最后提醒你,过节了,别忘了吃派!

注释及相关参考:

[1]知乎:圆周率里是否包含所有可能的银行卡密码?

https://www.zhihu.com/question/23419402/answer/327661779

[2]Pi Day is celebrated in today's Google Doodle

https://www.dailymail.co.uk/sciencetech/article-5500077/Pi-Day-celebrated-todays-Google-Doodle.html

Pi Day - Wikipedia

https://en.wikipedia.org/wiki/Pi_Day

百度百科:杨超越、新垣结衣条目

推荐阅读

推荐语:一本数学启蒙书,一场别开生面的数学之旅行。 

“阅读原文”一起了解及购买吧!

相关文章:

  • 新书推荐 |《Python程序设计(原书第2版)》
  • 新书推荐 |《KVM实战:原理、进阶与性能调优》
  • 高并发编程知识体系
  • 倒计时5天!云计算技术沙龙[北京站]召开在即
  • CSS宣布支持三角函数,下一步是什么?
  • Serverless:云时代的软件架构核心思想
  • 新书推荐 |《C# 7.0本质论(英文版)》
  • 新书推荐 |《机器学习精讲:基础、算法及应用》
  • 1/10个iPhone Xs = 英伟达最便宜AI计算机,这是唯一的“核弹”?
  • 新书推荐《嵌入式实时操作系统:RT-Thread设计与实现》
  • 新书推荐 |《硅谷设计之道:探寻硅谷科技公司的体验设计策略》
  • 叫板 Android 开发!跨平台应用开发神器 Flutter 又添开源插件!
  • AI大牛推荐的八本必读NLP书籍(建议收藏)
  • 新书推荐 |《HTML 5与CSS 3权威指南(第4版•上下册)》
  • 以女大学生相亲为例,给你讲明白数据挖掘算法
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • co.js - 让异步代码同步化
  • JavaScript异步流程控制的前世今生
  • Mithril.js 入门介绍
  • node 版本过低
  • Python - 闭包Closure
  • Spring框架之我见(三)——IOC、AOP
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 老板让我十分钟上手nx-admin
  • 聊聊flink的BlobWriter
  • 实现简单的正则表达式引擎
  • 使用putty远程连接linux
  • 字符串匹配基础上
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 阿里云ACE认证学习知识点梳理
  • 如何正确理解,内页权重高于首页?
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #、%和$符号在OGNL表达式中经常出现
  • #pragam once 和 #ifndef 预编译头
  • #pragma once与条件编译
  • $forceUpdate()函数
  • (20050108)又读《平凡的世界》
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (LeetCode) T14. Longest Common Prefix
  • (TOJ2804)Even? Odd?
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (过滤器)Filter和(监听器)listener
  • (力扣)循环队列的实现与详解(C语言)
  • (利用IDEA+Maven)定制属于自己的jar包
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (转)Google的Objective-C编码规范
  • (转)原始图像数据和PDF中的图像数据
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...