上手量子云:写你的第一个量子程序
前情提要:一个量子比特能"既 0 又 1",n 个叠加起来可以并行表示 2ⁿ 种状态,这是量子计算全部魔力的起点;而测量会把这个叠加态随机地坍缩成确定值,是计算的"收网"动作,且单次结果不可预测、只有长期统计才出规律。前面那些都是"看"的,这篇让你"摸"——不用买机器,打开浏览器就能跑一段真量子代码。
前面三十多篇,你一直在用脑子跑量子。现在换个玩法:让真机器(或者一个很真实的模拟器)替你跑。
最早想碰量子计算,得进国家实验室、抢低温冰箱的使用时段。今天完全不用——三大云平台上都开着量子机,你用笔记本就能提交一段线路,几分钟后拿回结果。这扇门的打开,比大多数人以为的早得多。
三大平台:在哪跑你的第一段代码
- IBM Quantum(Qiskit):开源生态最成熟。Qiskit 是 Python 库,文档、教程、真机队列全免费档可用,是新人最顺的入口。你写好的线路能选"模拟器"或"真机"(比如 IBM 的 Heron 芯片)跑。
- AWS Braket:亚马逊的聚合平台,不自己造机,而是把多家硬件(超导、离子阱、光量子)和模拟器收口到一个 API 下。好处是一套代码试多种硬件。
- Azure Quantum:微软的入口,除了接第三方硬件,还预留了它自己的拓扑量子路线(下一篇会聊),适合想一站看全貌的人。
三家的体验类似:写线路 → 选后端 → 提交 → 排队 → 取结果。真正稀缺的不是代码,是真机的"机时"。
第一段代码:让一枚硬币悬在半空
我们用 Qiskit 写最小例子——一个量子比特,加一道 H 门,再测量。还记得第 2 篇吗?H 门把确定的"0"变成"既 0 又 1"的叠加;第 4 篇说过,测量那一下才让它"选边站"。这段代码就是把这两件事连起来:
from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator
# 1 个量子比特,1 个经典比特
qc = QuantumCircuit(1, 1)
qc.h(0) # 加 H 门:制造叠加
qc.measure(0, 0) # 测量,让它塌缩到 0 或 1
sim = AerSimulator()
result = sim.run(transpile(qc, sim), shots=1024).result()
print(result.get_counts()) # 约一半 '0'、一半 '1'
跑出来的统计长这样(我用本地模拟器跑了 1024 次):
{'0': 494, '1': 530}
注意这个数字:它不是精确的 512 对 512,而是"大约一半一半"。这正是叠加的样子——测量前它既 0 又 1,测量后才随机定边,所以你每次跑都会得到略不同的 494/530、508/516 之类。如果你在每个结果前都"偷看了一眼",叠加就塌了,后面全变确定值——第 4 篇那个有点玄的结论,在这里成了代码里的一行 measure。
再来一个:把两个比特缠在一起
H 门只是开胃。真正的魔法在"纠缠"——第 3 篇讲过的那种"心灵感应"。用 H 加一道 CNOT(受控非门),就能现场织出一个 Bell 对:
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1) # CNOT:把纠缠织起来
qc.measure([0, 1], [0, 1])
# 结果类似 {'00': 521, '11': 503}
本地模拟 1024 次,我得到 00=521、11=503,而 01 和 10 一次都没出现。这正是 Bell 对的特征:两个比特永远同边(都 0 或都 1),但哪边是随机的。你亲手跑一遍,比读十遍"纠缠"都来得实在。

真机 vs 模拟器:噪声的体感
模拟器给你的是"理想世界"——干净、可复现。真机不一样:
- 要排队。免费档常被教学用户挤满,提交后可能等几分钟到几小时。
- 有噪声。真机上的比特会漏、会受热、会被邻居干扰,所以你跑 H 门,结果可能不是完美的 494/530,而可能是 480/544 甚至更歪。这正是第 11 篇讲的纠错要解决的问题——今天的中等规模机器,误差肉眼可见。
- 规模很小。免费档通常几个到几十个比特,跑不了 Shor、Grover 那种大算法,只能验证小概念。
这段"排队 + 看噪声"的体感,是模拟器给不了的。它让你真正理解:为什么大家说"现在还是 NISQ 时代"。
理性降温:玩具,但值得玩
必须说清楚:你在云上跑的,是玩具规模。它算不出分子、破不了密码、赢不了 AI。那为什么还要上手?
因为价值不在算力,在范式。亲手写一次 H、CNOT、measure,前面所有抽象概念(叠加、纠缠、测量坍缩、线路即程序)会从"别人的比喻"变成"你敲过的命令"。等哪天容错机成熟,你早就熟悉怎么跟它对话了。它像学开车——先在空地里练,不是要去飙赛车道。
---
这段"亲手跑"的体验,引出一个更尖锐的问题:如果量子不只是用来算,还能用来通信呢?下一篇《量子通信与量子互联网:不可窃听的密钥》:你会看到量子密钥分发(QKD)如何借纠缠和测量,让任何窃听都必然扰动信号、留下痕迹,从而造出一条由物理规律替你站岗的不可窃听密钥。
*(系列前文:第 2 篇讲叠加、第 4 篇讲测量,本篇把它们变成可运行的代码;想深究真机误差,可回看第 11 篇《量子纠错:给易碎的量子打补丁》。)*