本题没有输入,你的代码只需输出解决方案。
形式上,一个量子比特 ∣ψ⟩ 的状态可表示为 α∣0⟩+β∣1⟩。其中,α,β 是复数,且满足 ∣α∣2+∣β∣2=1。在这里,我们仅将其视为抽象的数学对象,而不探讨其物理意义。
若对 ∣ψ⟩ 进行测量:
- 有 ∣α∣2 的概率测得 0,且 ∣ψ⟩ 将坍缩为 ∣0⟩(即 1⋅∣0⟩+0⋅∣1⟩)。
- 有 ∣β∣2 的概率测得 1,且 ∣ψ⟩ 将坍缩为 ∣1⟩(即 0⋅∣0⟩+1⋅∣1⟩)。
对于多个量子比特,例如 ∣ψ1⟩=α∣0⟩+β∣1⟩ 和 ∣ψ2⟩=γ∣0⟩+δ∣1⟩,其复合系统的状态是
∣ψ1⟩∣ψ2⟩=(α∣0⟩+β∣1⟩)(γ∣0⟩+δ∣1⟩)=αγ∣0⟩∣0⟩+αδ∣0⟩∣1⟩+βγ∣1⟩∣0⟩+βδ∣1⟩∣1⟩
容易发现,∣αγ∣2+∣αδ∣2+∣βγ∣2+∣βδ∣2=1。
不同的量子比特之间并非总是可分离的。考虑一般的双量子比特系统的状态
∣ψ1⟩∣ψ2⟩=α00∣0⟩∣0⟩+α01∣0⟩∣1⟩+α10∣1⟩∣0⟩+α11∣1⟩∣1⟩
其中,∣α00∣2+∣α01∣2+∣α10∣2+∣α11∣2=1。若上式无法被分解为 (α∣0⟩+β∣1⟩)(γ∣0⟩+δ∣1⟩),则称 ∣ψ1⟩ 和 ∣ψ2⟩ 处于纠缠态。纠缠态形成后,即使两个量子比特在空间上远离,它们之间的关联也仍然存在。
若对该系统中的 ∣ψ1⟩ 进行测量:
- 有 ∣α00∣2+∣α01∣2 的概率测得 0,且系统将坍缩为 ∣α00∣2+∣α01∣2∣0⟩(α00∣0⟩+α01∣1⟩)。
- 有 ∣α10∣2+∣α11∣2 的概率测得 1,且系统将坍缩为 ∣α10∣2+∣α11∣2∣1⟩(α10∣0⟩+α11∣1⟩)。
对该系统中的 ∣ψ2⟩ 进行测量同理。∣ψ1⟩ 和 ∣ψ2⟩ 的地位平等。
量子门是操作量子比特的基本工具。
在本题中,可能用到且只能使用 H 门、X 门、Z 门、CNOT 门。
使用 H 门、X 门、Z 门须选定一个目标比特 ∣ψ⟩,设操作前 ∣ψ⟩=α∣0⟩+β∣1⟩,则:
- H 门会使 ∣ψ⟩=α2∣0⟩+∣1⟩+β2∣0⟩−∣1⟩。
- X 门会使 ∣ψ⟩=α∣1⟩+β∣0⟩。
- Z 门会使 ∣ψ⟩=α∣0⟩−β∣1⟩。
使用 CNOT 门须选定一个控制比特 ∣ψ1⟩ 和一个目标比特 ∣ψ2⟩,两者不能是同一个比特,设操作前
∣ψ1⟩∣ψ2⟩=α00∣0⟩∣0⟩+α01∣0⟩∣1⟩+α10∣1⟩∣0⟩+α11∣1⟩∣1⟩
那么 CNOT 门会使
∣ψ1⟩∣ψ2⟩=α00∣0⟩∣0⟩+α01∣0⟩∣1⟩+α10∣1⟩∣1⟩+α11∣1⟩∣0⟩
需要注意的是,使用量子门对所涉及的量子比特与其它量子比特之间的纠缠情况不作要求。例如,假设
∣ψ1⟩∣ψ2⟩∣ψ3⟩=∣0⟩∣0⟩∣1⟩+∣1⟩∣1⟩∣0⟩
若以 ∣ψ3⟩ 为控制比特、∣ψ1⟩ 为目标比特使用 CNOT 门,则结果是
∣ψ1⟩∣ψ2⟩∣ψ3⟩=∣1⟩∣0⟩∣1⟩+∣1⟩∣1⟩∣0⟩
小 L 学习量子计算的初步知识后,暗想:何意味?
于是,他设计了 HYW 语言——一种极其简单的量子计算程序设计语言。
一个 HYW 程序由若干条语句构成,每条语句占据一行。解释器将从前到后依次执行语句。
语句分为测量语句和操作语句。
测量语句的格式是 measure x,表示对 ∣ψx⟩ 进行测量,结果为 0 或 1。
操作语句分两种:
| 格式 |
含义 |
| <statement> |
执行 <statement> |
| if <condition> then <statement> |
若 <condition> 为真,执行 <statement> |
这其中的 <statement> 分四种:
| 格式 |
含义 |
| H x |
以 ∣ψx⟩ 为目标比特,使用 H 门 |
| X x |
以 ∣ψx⟩ 为目标比特,使用 X 门 |
| Z x |
以 ∣ψx⟩ 为目标比特,使用 Z 门 |
| CNOT x y |
以 ∣ψx⟩ 为控制比特,∣ψy⟩ 为目标比特,使用 CNOT 门 |
<condition> 的格式是 mx=y,表示「第 x 次测量(measure)的结果是 y」。
例如,初始时 ∣ψ1⟩∣ψ2⟩=∣0⟩∣0⟩,要使 ∣ψ1⟩∣ψ2⟩=2∣0⟩∣0⟩+∣1⟩∣1⟩,HYW 程序可以是
执行每条语句后的情况如下:
- ∣ψ1⟩∣ψ2⟩=2∣0⟩+∣1⟩∣0⟩
- ∣ψ1⟩∣ψ2⟩=2∣0⟩∣0⟩+∣1⟩∣1⟩
此后,要使 ∣ψ1⟩∣ψ2⟩ 变回 ∣0⟩∣0⟩,HYW 程序可以是
measure 1
if m1=1 then X 1
if m1=1 then X 2
执行每条语句后的情况如下:
- 可能是 ∣ψ1⟩∣ψ2⟩=∣0⟩∣0⟩(测得 0),也可能是 ∣ψ1⟩∣ψ2⟩=∣1⟩∣1⟩(测得 1)。
- 可能是 ∣ψ1⟩∣ψ2⟩=∣0⟩∣0⟩,也可能是 ∣ψ1⟩∣ψ2⟩=∣0⟩∣1⟩。
- ∣ψ1⟩∣ψ2⟩=∣0⟩∣0⟩。
现在,考虑这样一个问题:
初始时,∣ψ1⟩=α∣0⟩+β∣1⟩,∣ψ2⟩=∣0⟩,∣ψ3⟩=∣0⟩。
我们的目标是使 ∣ψ1⟩=∣0⟩,∣ψ2⟩=∣0⟩,∣ψ3⟩=α∣0⟩+β∣1⟩。
你需要设计一个不超过 16 条语句的 HYW 程序,来实现这一目标。