⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 腾讯 「腾讯」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】 有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有 源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言 将得到认真 回复。甚至不知道如何读源码也可以请教噢
  4. 新的 源码解析文章实时 收到通知。每周更新一篇左右
  5. 认真的 源码交流微信群。

支付码、名片码、健康码、校园码、复学码、乘车码、挪车码码码码码码码码码码码码码码码码码码码码码码码码码码,这么多码?光疫情期间,微信“码上经济” 就用掉了 1400亿个二维码,那么就有同学来问了:

二维码会被人类扫完吗?

我们邀请到两位鹅厂开发老鹅来解答:

这个问题很简单,答案是:会。

因为二维码的尺寸是有限的,那二维码的数量就是有限的。

但是扫完所有的二维码,需要很长很长很长很长的时间。

现在的二维码有40个官方版本(二维码是由Denso公司于1994年9月研制的一种矩阵二维码符号)。

从Version1-40,最小为2121、最大为177177矩阵。

其中,微信名片就是37×37 的矩阵规格,微信的付款码是 25×25 的矩阵规格。方便理解,我们用方块作为矩阵单位。

扫~37×37矩阵的二维码

如何计算,各矩阵中生成的二维码个数?我们来举个例子:

下面四宫格,每个格子有两种颜色变化,请问一个四宫格可以组合出多少个图形?

解:一个格子两种颜色,那就是两种可能,两个格子就是四种可能,三个格子就是8种可能,四个格子就是16种可能。所以,四宫格能够组成2^4,共16个图形。

以此类推:

25X25 的微信付款码

每一排有 25 个方块,共 25 列,除去定位用的方块和冗余纠错的方块等,还剩下478 个方块。按照二进制,每个方块只有黑或白两种选择,所以 478 个小方块理论上一共可以组合 2^478 个二维码。

也就是一个25X25规格尺寸的二维码可以生成:

780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544个二维码。

大家可以尝试念出来大概多少个?

根据疫情期间1400亿个二维码的数量来计算,假设微信一年会用掉6000亿个二维码。那微信用掉25X25这一个尺寸产生的二维码需要多少年呢?

我们来算一下:2^478/6000亿=1.301×10^132 年(超多亿亿亿亿年)

二维码咱中国人是不缺了,小小推广一下 ,世界上所有人都用 ,那就是

1.301×10^132 / 5 = 2.602 x 10^131 年(好多亿亿亿亿年)

还能给力推广一下么?

根据资料,宇宙中大约有700垓(7x10^22)颗恒星,又根据德雷克公式

预计会有15600000个星球有智能生命,假设每颗星球上有地球同等人口需要扫二维码的外星人,那够全宇宙扫

2.602 x 10^131 / 1.56x10^7 = 1.668x10^124 年(很多亿亿亿亿年)

参考热寂理论对宇宙终极命运猜想, 一千万亿年后,行星脱离轨道,所有生物都没办法依靠恒星活着了,那个时候二维码还是远远没有扫完。

看来,全宇宙都用上也不愁了。

只是,人类可观测宇宙有大约为93 × 10^9光年,所以离地球远点的星球,估计要等上好一阵才能扫到码了。

文章目录