算盘的传说:从结绳记事到量子计算的算力进化史 / The Legend of the Abacus: The Evolution of Computing Power from Knot Recording to Quantum Computing
公元前12000年,美索不达米亚的草原上,一个年轻的猎手正盯着挂在岩壁上的十几条麻绳发愁。这个秋天部落的收获远超往年:37头野牛、120只兔子、3000斤谷物,还有不计其数的浆果和兽皮。可每次分配物资时,大家总是吵得不可开交——老族长记不清去年冬天还剩多少粮食,猎手们争抢着要最大的那份猎物,女人们抱怨自己分到的浆果太少。猎手挠着头,把麻绳解下来,每打一个结代表一头野牛,每系三个小疙瘩代表十只兔子,最后在绳子的末尾系了三颗燧石,代表今年的粮食结余。这就是人类最早的“计算工具”——结绳记事(Knot Recording),它没有电路,没有芯片,甚至没有一块打磨过的木头,却承载了人类最早的算力需求:把纷乱的世界,变成可以计数、可以预测、可以管理的数字。
几千年后,在东亚的黄河流域,人们不再满足于用绳子打结计数。春秋战国时期的《数术记遗》里记载了一种叫“珠算”(Abacus)的工具:木框里横着一根细梁,梁上串着两排圆珠,上排两颗代表5,下排五颗代表1,拨动珠子就能完成加减乘除。算盘比结绳记事高效了何止百倍?一个熟练的珠算师傅,拨动珠子的速度能达到每秒5次,算一道三位数的乘法只需要几秒,比用毛笔在竹简上演算快了十几倍。清朝乾隆年间,和珅作为户部尚书管理国库,查账时从来不用算筹,只用一把算盘,短短半天就能算清全国一年的税银收入,误差不超过十两银子。算盘的黄金时代持续了两千多年,直到19世纪欧洲的工业革命催生了更复杂的计算需求,算盘的珠子再也拨不动人类的算力野心了。
1792年,英国数学家查尔斯·巴贝齐坐在书房里,看着满桌子的天文计算表格发愁。那时候航海家出海要靠天文表定位,可人工计算天文数据的出错率高达30%,很多船因为算错经纬度沉入海底。巴贝齐想造一台能自动计算数学表格的机器,他把这台机器命名为“差分机”(Difference Engine):用齿轮的转动代表数字运算,只要输入初始参数,机器就能通过齿轮的咬合自动算出结果,不用人工一步步演算。巴贝齐为了造差分机,花光了家里所有的积蓄,甚至说服妻子把自己的银器都熔了,换成制造齿轮的铜。可19世纪的机械加工技术太落后了,差分机的零件精度要求达到千分之一毫米,工匠们磨了十年,连最核心的齿轮都做不合格。巴贝齐到死都没造出能用的差分机,直到2000年,伦敦科学博物馆的工程师按照他留下的2000多张设计图,用现代的纳米级加工技术造出了第一台能运行的差分机。当齿轮转动的“咔哒”声响起时,在场的所有人都红了眼眶——这声音穿越了200年,是人类对自动计算的渴望最沉重的回响。
如果说差分机是机械计算的巅峰,那么1946年诞生的ENIAC就是电子计算时代的起点。二战期间,美国陆军要计算不同角度、不同风速、不同火药量下的炮弹弹道轨迹,人工算一张射程表要花三周时间,等表算出来,战争早就结束了。宾夕法尼亚大学的科学家莫奇利和埃克特决定造一台用电子管工作的计算机,这就是ENIAC。这台“巨兽”占地170平方米,重达30吨,用了18000个真空管,每秒能完成5000次加法运算,算一张弹道表只需要30秒,是人工计算速度的1000倍以上。ENIAC的诞生标志着人类正式进入了电子计算时代,可谁也想不到,这台一天要烧坏好几个真空管、耗电150千瓦的大家伙,会在短短几十年后,变成现在每个人口袋里都能装下的智能手机。
电子计算的黄金时代,随着摩尔定律(Moore's Law)的提出正式到来。1965年,英特尔公司创始人之一戈登·摩尔发表了一篇论文,里面提到一个惊人的规律:集成电路上的晶体管数量,每过18个月就会翻一番,而成本保持不变。这个规律后来被命名为“摩尔定律”,它不是自然规律,而是工程师们自我实现的预言。从1971年Intel推出第一款微处理器4004,上面只有2300个晶体管,到2023年台积电量产的3nm芯片,上面的晶体管数量已经超过了500亿个,50年的时间,人类算力涨了超过2亿倍。我们现在的智能手机,算力是阿波罗登月飞船上计算机的几百万倍,可你甚至可以用它来拍4K视频、玩3A游戏、开视频会议——这就是摩尔定律带来的奇迹。
可摩尔定律也有走到尽头的一天。现在广泛使用的RSA加密算法,核心原理是“大数分解的困难性”:把两个100位的质数相乘,得到一个200位的合数,经典计算机只要几毫秒就能完成;可反过来,要把这个200位的合数分解成原来的两个质数,哪怕用现在最快的超级计算机,也要算几百万年。这是因为经典计算机的运算方式是线性的,它只能一个一个试可能的质数,就像你要从一亿吨沙子里找一颗特定的珍珠,只能一粒一粒翻,而沙子的数量是天文数字。如果我们想破解现在常用的2048位RSA加密,经典计算机需要的时间比宇宙的年龄还长。
> 📌 侧边栏:什么是大数分解? > 你可以把RSA加密想象成锁门:你把两个大质数相乘得到一个合数,相当于做了一把锁,把合数公开,相当于把锁的型号告诉大家;而两个质数是钥匙,只有你有。大数分解就是拿到锁的型号,反推钥匙,经典计算机只能暴力试所有的可能,而量子计算机可以用“肖尔算法”快速分解大数,相当于拿到了万能钥匙。
另一个让经典计算机头疼的领域是蛋白质折叠。蛋白质是由氨基酸链折叠成的三维结构,它的结构直接决定了它的功能:比如阿尔茨海默症的致病蛋白是β-淀粉样蛋白,它的错误折叠会导致脑细胞死亡,可经典计算机模拟一个中等大小的蛋白质折叠,需要算几十年甚至上百年。因为蛋白质里的每个原子都和周围的原子有复杂的相互作用,你要算清楚每一个原子的位置、每一个化学键的力,需要的计算量是原子数量的指数级增长。现在著名的AlphaFold虽然能预测蛋白质的静态结构,但准确率对于复杂的大分子仍有局限,更无法模拟蛋白质的动态折叠过程,很多新药的研发因此卡在了这一步。
还有现在火热的大语言模型,训练一个GPT-4级别的模型,需要几万张英伟达A100显卡,连续训练几个月,消耗的电力相当于一个小镇一年的用电量,成本超过1亿美元。而下一代大模型需要的算力是现在的几十上百倍,摩尔定律已经无法满足这个需求了。就像你要爬一座100层的高楼,经典计算机的电梯只能到50层,上面的50层你只能爬楼梯,而量子计算就是那个能直接到100层的电梯。
> 📌 侧边栏:摩尔定律会失效吗? > 现在的3nm芯片,晶体管的栅极长度只有几十个原子的大小,再往下做,到1nm甚至0.5nm的时候,量子隧穿效应就会出现:电子会直接穿过晶体管的绝缘层,导致晶体管漏电,根本没法正常工作。业内普遍预测,摩尔定律会在2025-2030年之间物理失效,人类必须找到新的算力范式,才能满足未来的算力需求。
那量子计算是怎么来的?这要从100多年前的物理学革命说起。1900年,德国物理学家马克斯·普朗克正在研究黑体辐射的问题——就是把一个物体加热到发红,它发出的光的颜色和强度是怎么变化的。经典物理学的公式算出来的结果和实验结果完全对不上,普朗克实在没办法,做了一个“大胆的假设”:物体发出的能量不是连续的,而是一份一份的,每一份的能量和光的频率成正比,比例系数就是后来著名的普朗克常数$h$,公式为: $$E = h\nu$$ 其中$E$是能量,$\nu$是光的频率,$h$是普朗克常数,约为$6.626 \times 10^{-34} \text{J·s}$[^1]。这个假设太离经叛道了,当时所有人都觉得普朗克疯了:能量怎么可能是一份一份的?就像你倒水,倒出来的水难道是一滴一滴的,不能连续倒?普朗克自己都不敢相信这个假设,他花了十几年想把这个假设从理论里去掉,可最后发现,这个假设是唯一能解释黑体辐射的。
1905年,爱因斯坦在普朗克的基础上往前迈了一步。他研究光电效应——就是光照射到金属上,会把金属里的电子打出来。经典物理学认为,光的强度越大,打出来的电子能量越高,可实验结果完全不是这样:不管光有多强,只要光的频率不够,就打不出电子;只要频率够高,哪怕光很弱,也能打出电子。爱因斯坦大胆提出:光本身就是一份一份的,每一份叫“光子”(Photon),一个光子的能量全部给一个电子,就能把电子打出来。这个理论完美解释了光电效应,爱因斯坦因此拿到了1921年的诺贝尔物理学奖,可当时很多老派物理学家还是不信,普朗克甚至说“爱因斯坦有时候会犯错误,比如他的光量子假说”。
后来的玻尔、海森堡、薛定谔、狄拉克等人,在20世纪20年代建立了完整的量子力学体系。量子力学和经典物理学的最大区别是:经典世界里,一个物体的状态是确定的,比如一个球在某个位置,速度是多少,都是确定的;可量子世界里,一个微观粒子的状态是不确定的,你只能知道它出现在某个位置的概率,直到你观测它的时候,它才会“坍缩”到一个确定的状态。还有一个更诡异的现象叫“量子纠缠”(Quantum Entanglement):两个微观粒子不管离得多远,只要它们曾经相互作用过,它们的状态就会关联在一起,你测量其中一个的状态,另一个的状态会瞬间确定,哪怕它们在宇宙的两端。这个“超距作用”让爱因斯坦都觉得不可思议,他说“上帝不掷骰子”,还说“量子力学不完备”,可后来的实验一次次证明,量子纠缠是真的存在。
> 📌 侧边栏:爱因斯坦和玻尔的论战 > 20世纪上半叶,爱因斯坦和玻尔进行了长达几十年的论战,每次论战都成为物理学界的盛事。爱因斯坦每次都会提出一个思想实验,想证明量子力学是错的,可玻尔每次都能找到反驳的理由。有一次爱因斯坦说“上帝不掷骰子”,玻尔回复说“别教上帝怎么做”。现在来看,玻尔是对的,量子力学的概率本质是微观世界的本质规律。
1982年,物理学家理查德·费曼在一次演讲里说了一句后来被所有量子计算研究者奉为圭臬的话:“自然不是经典的,如果你想模拟自然,你最好用量子力学。”费曼是当时最聪明的物理学家之一,他早就意识到,经典计算机根本没法模拟量子系统,因为量子系统的状态是叠加的,你要模拟一个100个量子比特的系统,经典计算机需要存储$2^{100}$个状态,这个数字是1后面跟30个零,比宇宙里的原子数量还多,根本不可能完成。费曼提出,能不能造一台用量子力学原理工作的计算机,用它来模拟量子系统?这就是量子计算的最初想法。
1985年,物理学家大卫·多伊奇提出了通用量子计算的理论模型,他证明了量子计算机可以完成任何经典计算机能完成的计算,而且对于某些特定问题,量子计算机的速度是指数级的提升。1994年,数学家彼得·肖尔提出了肖尔算法,证明了量子计算机可以快速分解大数,这意味着RSA加密在量子计算机面前完全没用,这个消息一出,整个密码学界都震动了,大家突然意识到,量子计算不是科幻小说里的概念,是即将到来的现实。2019年,谷歌宣布实现了“量子优越性”(Quantum Supremacy):他们的53个量子比特的处理器“悬铃木”(Sycamore)用200秒完成了一个经典超级计算机需要1万年才能完成的随机线路采样任务,虽然这个任务没有实际应用价值,但它证明了量子计算在特定问题上确实比经典计算机快。
我们可以把人类的算力需求比作一座阶梯,每一级台阶都对应着不同的算力需求:
```mermaid graph TD A[一级算力需求:日常计数/简单算术<br>(结绳记事、算盘即可满足)] --> B[二级算力需求:工程/科学计算<br>(差分机、经典电子计算机满足)] B --> C[三级算力需求:密码破解/药物研发/AI训练<br>(经典计算机接近瓶颈)] C --> D[四级算力需求:量子系统模拟/宇宙演化模拟<br>(量子计算才能满足)] C -.-> E[量子计算:跨级算力跃迁] style A fill:#f9f,stroke:#333,stroke-width:2px style B fill:#9f9,stroke:#333,stroke-width:2px style C fill:#99f,stroke:#333,stroke-width:2px style D fill:#ff9,stroke:#333,stroke-width:2px style E fill:#f99,stroke:#333,stroke-width:2px ```
第一级台阶是日常计数和简单算术,结绳记事和算盘就能满足;第二级是工程和科学计算,比如算弹道、算天文数据,差分机和经典电子计算机能完成;第三级是现在的热门需求,比如密码破解、药物研发、大模型训练,经典计算机已经接近了算力瓶颈,靠堆晶体管已经很难再提升;第四级是量子系统模拟、宇宙演化模拟、新材料研发,这些需求需要的算力是经典计算机的指数倍,只有量子计算才能满足。
量子计算不是更快的经典计算机,而是完全不同的计算范式。经典计算机的比特就像开关,要么开要么关,只能是0或者1;而量子比特就像一枚旋转的硬币,在落地之前,它既是正面又是反面,是0和1的叠加态。如果你要找一个藏在100个盒子里的礼物,经典计算机要一个一个开,平均开50次才能找到;量子计算机只要1次,因为它同时开了所有的盒子。当然,量子计算不是
当然,量子计算不是光靠叠加态就能解决所有问题的魔法,它的真正威力来自量子力学另外两个核心特性:纠缠和干涉,我们先从大家最熟悉的经典比特说起,看看两者的本质区别到底是什么。
经典比特:开关里的算力革命
你现在手里拿的手机、桌上放的电脑,甚至智能手表里的芯片,本质上都是由无数个“开关”组成的。这个开关就是经典比特(Classical Bit),它的状态只有两种:开(代表1)或者关(代表0),就像电灯开关,要么通电要么断电,不存在中间状态。所有的经典计算,本质上都是把这些开关按照特定的逻辑规则(与、或、非、异或等)组合起来,完成信息的处理和运算。
举个例子,你要算1+1=2,经典计算机的工作流程是:首先把代表数字1的电压信号(比如3.3V)输入到加法器电路里,经过一系列逻辑门的转换,最后输出代表数字2的电压信号,整个过程是线性的,一次只能处理一组输入。如果你要算100个数的加法,经典计算机就要一个个加,不能同时处理所有的数,这就是经典计算的“线性瓶颈”。
这个瓶颈在摩尔定律的黄金时代还不明显,因为工程师只要不断缩小晶体管的尺寸,就能在同样的芯片面积里塞下更多的开关,提升算力。可正如之前提到的,现在晶体管已经做小到几十个原子的尺寸,再往下做就会出现量子隧穿效应(Quantum Tunneling Effect):电子会直接穿过晶体管的绝缘层,导致晶体管漏电,根本没法正常工作。而且就算物理上能做出来1nm甚至更小的晶体管,成本也会高到离谱,一片3nm的芯片制造成本已经超过1万美元,1nm芯片的成本可能会翻10倍,根本没有商业价值。更麻烦的是,经典计算的“冯诺依曼瓶颈”(Von Neumann Bottleneck):运算单元和存储单元是分开的,数据要在两者之间来回传输,传输速度远远跟不上运算速度,哪怕你运算速度再快,数据传输拖后腿,整体性能也提升不上去。就像一条高速公路,出口只有一条车道,哪怕你路上开再快的车,到出口还是要堵车。
> 📌 侧边栏:什么是量子隧穿效应? > 你可以把晶体管的绝缘层想象成一堵墙,电子要穿过这堵墙才能从导通变成截止,经典世界里,电子没有足够的能量是穿不过墙的,可量子世界里,电子有概率直接“穿墙而过”,就像你玩穿墙游戏,有一定概率直接穿过墙壁,不需要开门。这个效应对经典芯片来说是灾难,但对量子计算来说却是核心原理之一。
量子比特:旋转的硬币与叠加态
如果说经典比特是电灯开关,那量子比特(Qubit)就是一枚正在空中旋转的硬币。在它落地之前,你不能说它是正面还是反面,它同时处于正面和反面的叠加态(Superposition),直到你用手接住它(也就是“观测”它),它才会坍缩(Collapse)到确定的正面或者反面。
这个叠加态不是比喻,是真实存在的物理现象。我们可以用量子力学的数学语言来描述它:一个量子比特的状态可以表示为: $$|\psi\rangle = \alpha|0\rangle + \beta|1\rangle$$ 其中$|\psi\rangle$是量子比特的状态,$|0\rangle$代表经典比特的0状态,$|1\rangle$代表1状态,$\alpha$和$\beta$是复数,叫做“概率幅”(Probability Amplitude),它们的模的平方$|\alpha|^2$和$|\beta|^2$分别代表测量时得到0和1的概率,而且必须满足$|\alpha|^2 + |\beta|^2 = 1$,也就是所有概率加起来是100%。
你可能要问:这和经典比特的0和1有什么区别?区别在于,n个经典比特只能同时表示2^n个状态中的1个,比如2个经典比特只能同时表示00、01、10、11中的一个,比如现在是01;而n个量子比特可以同时表示2^n个状态的叠加,比如2个量子比特可以同时处于00、01、10、11的叠加态,测量的时候才会坍缩到其中一个状态。
这个区别带来的算力差距是指数级的:
- 2个量子比特可以同时表示4个状态
- 3个量子比特可以同时表示8个状态
- 50个量子比特可以同时表示$2^{50} \approx 1.13 \times 10^{15}$个状态,也就是1千万亿个,比现在全球所有超级计算机的总存储量加起来还大
- 100个量子比特可以同时表示$2^{100} \approx 1.27 \times 10^{30}$个状态,这个数字比宇宙中已知的原子总数(大约$10^{80}$)还要大得多
这就是为什么量子计算对于特定问题有指数级加速的能力:经典计算机要一个个试所有可能的解,而量子计算机可以同时处理所有可能的解,就像你要找一把藏在100个盒子里的钥匙,经典计算机要一个个开盒子,平均开50次才能找到,而量子计算机只需要1次,因为它同时开了所有的盒子。
当然,这里要澄清一个常见的误区:量子计算机不是所有问题都比经典计算机快,它只对特定类型的“量子友好问题”有指数级加速,比如大数分解、量子系统模拟、无序数据库搜索、组合优化问题等,对于日常的办公、看视频、玩游戏这些任务,量子计算机反而不如经典计算机快,因为量子比特非常脆弱,容易受到环境干扰发生“退相干”(Decoherence),也就是叠加态消失,变成经典的0或1状态,维持量子比特的叠加态需要极低温、极真空的环境,成本极高,未来很长一段时间,我们都会使用“量子-经典混合计算”的模式:量子计算机负责处理经典计算机搞不定的特定任务,经典计算机负责处理日常的通用任务,两者互补,而不是取代。
纠缠:跨越时空的“心灵感应”
如果说叠加态是量子比特的“个人能力”,那量子纠缠(Quantum Entanglement)就是量子比特的“团队技能”。当两个量子比特发生相互作用后,它们的状态就会关联在一起,不管它们之后离得多远,哪怕一个在地球,一个在月球,你测量其中一个的状态,另一个的状态会瞬间确定,这个现象叫做“量子纠缠”,爱因斯坦把它叫做“幽灵般的超距作用”(Spooky Action at a Distance)。
很多人会问:这个会不会是两个量子比特之间有什么“隐藏的通信方式”,只是我们没发现?这个问题在20世纪60年代被物理学