Grover搜索算法
# Grover 搜索算法 - 在 4 个元素中搜索第 3 个 (index=2)
# 2-qubit 系统: |00>, |01>, |10>, |11>
# 目标态: |10> (即 index 2)
# 需要 1 次 Grover 迭代
init 2
# 创建均匀叠加态
H 0
H 1
# Grover 迭代 (1次就够了, 因为 N=4, 最优迭代次数 = pi/4 * sqrt(N) = 1)
# --- Oracle: 标记目标态 |10> ---
# 使用 Toffoli 门简化: 当 q1=0 且 q0=1 时翻转辅助相位
# 等价于: 对 |10> 态应用相位 -1
X 0 # 翻转 q0, 使 |10> -> |11>
CNOT 1 0 # 如果 q1=1 且 q0=1, 则...
X 0 # 恢复 q0
# --- 扩散算子 (Diffusion Operator) ---
H 0
H 1
X 0
X 1
CNOT 0 1
H 1
X 1
X 0
H 0
H 1
# 测量
MEASURE 0 0
MEASURE 1 1
# 预期结果: 应该高概率得到 |10>
PRINT 0
STOP