量子比特与比特的差别到底在哪
差别不在「同时是 0 和 1」,在系数与测量
「量子比特同时是 0 和 1」,这句话听上去像它一次能干两件事。真按这个想法去设计算法,多半会撞墙。差别不在「同时」,在系数与测量。
一个数,一支箭头
经典比特是一个数,取 0 或 1,没有别的可能。量子比特是一个单位向量 ,两个系数是复数。它不是「两个值同时存在」,而是一支有方向的箭头:方向定了,两个系数就定了。
读它的方式只有一个:选一个基去测。测 z 基,得到 0 的概率是 ,得到 1 的概率是 ;测完态就落到对应的基上,原来那支箭头没了。经典比特读一百次还是同一个数,量子比特测一次就换一个态。
基的选择还带来一个自由:同一个态,换一个基去测,概率分布就变了,态本身却一点没动。 在 z 基下是一半一半,在 x 基下却是确定的。所谓「读出信息」,很大程度上是在问选哪个基。
并行性的边界
n 个比特的态有 个 概率幅。写下来很省:50 个比特就描述了一个 维的空间。可一次测量只吐出一个 n 位结果,你拿到的是 1 个数,不是 个数。想靠重复测量把全部振幅读出来也不行,因为每次测完态都变了,重复的是新的态。
所以「量子并行」不是同时跑 个输入、再把答案逐个取回来。它做的是让 条路径的振幅在演化中按 相位 相加:目标结果的振幅被放大,其余相消,最后测一次就大概率拿到它。算法真正设计的是这一步,也就是测量之前的干涉。
这也是量子算法稀少的原因。不是每个问题都能把答案压进一个可测的偏置里;能压进去的,才有优势。
n 个量子比特一次能表示 2 的 n 次方个数,所以一次运算顶经典计算机算 2 的 n 次方次。
2 的 n 次方个振幅只是描述状态;一次测量只给出一个结果,有用信息必须靠干涉在测量前聚到少数结果上。
把「能表示」当成了「能读出」。表示是免费的,读出要在测量时付账,而且只付一次。
一句话结论
经典比特是一个数,量子比特是一支单位向量:方向决定系数,系数决定概率。n 个比特确实对应 个振幅,但测量只还给你一个结果。信息要先靠干涉挤进一个可测的偏置,才拿得出来。
本节自测 · 3 题
未作答
01一个 50 比特的量子态要用多少个振幅描述?测一次能拿到几个结果?
解析 · 振幅数是 2 的 50 次方,但一次测量只给出一个 50 位的结果,也就是一个数。测量之后原来的态已经变了,所以不存在「一次读出全部振幅」的操作。
02下面哪句话正确描述了「量子并行」?
解析 · 并行性来自振幅的叠加与干涉,读出只有一次,所以必须提前把答案聚到少数结果上。一次读出全部答案做不到;指数加速也只对具有特定结构的问题成立。
03为什么「经典比特读一百次」和「量子比特测一百次」不是一回事?
解析 · 测量把态投影到结果对应的基上,后续测量面对的是新态,不是原来那个态。经典比特的读取不改变它的值,这是两边的根本差别。