想象有一座只为 Google 量身定制的量子音乐厅——“氦歌剧院”。台上的乐手个个天赋异禀,却都很“娇气”:他们的完美状态只能保持几十微秒,稍纵即逝,一旦超过时限就会集体走音。更重要的是,这座音乐厅的声学结构独一无二,任何外来的指挥家都摸不清哪里回声重、哪里灯光暗。于是 Google 培养了一位专属舞台总监——Cirq。他不仅认得每一位乐手(量子比特)、看得懂总谱(量子电路)、熟悉每一条演奏指令(量子门),还掌握着把每个音符精确安排到纳秒级的独门绝技。这位总监会用排练厅(模拟器)反复彩排,最终指挥乐团在真实舞台上完成演出。本文就带你认识这位总监,看他如何排演量子算法,以及如何与另一位“巡回指挥”Qiskit 相处。

岗位关联

学会 Cirq,你就掌握了在真实量子芯片上“排演”量子算法的核心技能。量子机器学习、量子化学模拟这些前沿方向,都会用到这位总监的看家本领。

目录
  1. 可视化演示
  2. Cirq初识
  3. 量子比特与电路
  4. 量子门操作
  5. 模拟器与运行
  6. 与Qiskit对比
  7. 量子机器学习
  8. 实战量子算法
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示轮询、最少连接、加权轮询三种负载均衡策略的请求分发过程,实时显示各服务器负载状态。

本节配有交互动效(进入视口后自动加载,约 3KB)。

轮询策略 RR 请求按顺序依次分配到每台服务器 青色节点正常负载橙色高负载 next=(i+1) mod N 点击按钮切换负载均衡策略

Cirq初识

Google 的量子硬件团队发现,市面上的通用量子编程工具就像一位“只会看泛泛总谱”的巡回指挥,拿到 Sycamore 芯片这块独一无二的舞台时,总在细节处碰壁——这台设备的比特之间只有特定连线、某些门只能在特定时刻执行。于是团队在 2018 年搬出了一位专属舞台总监:Cirq。Cirq 是 Google Quantum AI 开源的 Python 量子计算框架,它的第一设计原则不是“什么硬件都能指挥”,而是“把我们自家的 NISQ 硬件指挥到极致”。

“含噪中等规模量子(NISQ)”听起来复杂,其实就是上一代演出条件:乐手们状态脆弱、舞台到处漏风。Cirq 的解决思路是时刻(Moment)优先——把同一时刻发生的所有操作归为一组,让总监对每一拍都了如指掌。安装很简单,一条 pip install cirq-core 命令就能把总监请进你的开发环境。而理解量子计算的一切,都绕不开量子态这个基础概念:

总监上任先做三件事:认人(认识每一位量子比特)、认谱(读懂电路总谱)、认时刻(把一个动作安置在最合适的那一拍)。这就是 Cirq 初识的全部奥义。

∣ψ⟩=α∣0⟩+β∣1⟩,∣α∣2+∣β∣2=1|\psi\rangle = \alpha|0\rangle + \beta|1\rangle, \quad |\alpha|^2 + |\beta|^2 = 1
  1. 量子态符号 ψ希腊字母 psi 表示乐手此刻的“状态”。它既不是纯粹的 |0⟩,也不是纯粹的 |1⟩,而是两种基础状态的混合。
    ∣ψ⟩|\psi\rangle
  2. 两种基础音色 |0⟩ 与 |1⟩|0⟩ 像“静音基调”,|1⟩ 像“高音亮点”,竖线加尖括号是量子力学的狄拉克记号,表示一个状态容器。
    ∣0⟩,∣1⟩|0\rangle, \quad |1\rangle
  3. 混合权重 α 与 β复振幅,相当于两种音色的混合比例。它们模的平方分别对应测到 |0⟩ 和 |1⟩ 的概率。
    α,β\alpha, \quad \beta
  4. 概率归一化条件|α|² 加 |β|² 等于 1,意思是一个乐手总的得演奏某种音色,所有可能性加起来的概率必须是 100%。
    ∣α∣2+∣β∣2=1|\alpha|^2 + |\beta|^2 = 1

量子比特与电路

舞台总监手里有一份乐手名单。在 Cirq 里,这份名单由 cirq.Qubit 负责管理。普通 Qubit 只是一个抽象称呼,真正上 Google 芯片时要使用 GridQubit——它用行列坐标标注乐手站在二维网格的哪个位置,就像演唱会座位图上的排号和座号。临时实验还可以用 NamedQubit 随手起个名字,比如 "q0"、"ans"。

把乐手组织好之后,就要写总谱了。Cirq 的总谱容器叫 Circuit(电路),它像一本活页谱夹,往里一页页追加乐谱。这里的每一页,对应一个 Moment(时刻)。Moment 不是单个音符,而是“同一时刻所有乐手同时演奏的动作集合”。这个设计非常贴近真实硬件:芯片上多个门同时执行,谁和谁同拍,必须精确到纳秒。

最贴心的是,Cirq 能直接把总谱打印成 ASCII 线路图——每条水平线是一个量子比特,从左到右是时间流动方向,观众一眼就能看懂整场演出的流程。而多个乐手组成的乐队,其整体状态要用张量积来描述:

Circuit 是总谱本,Moment 是每一拍,Qubit 是乐手名单。舞台总监的所有灵感,都写在这本总谱里。

∣ψ⟩=∣q0⟩⊗∣q1⟩⊗⋯⊗∣qn−1⟩|\psi\rangle = |q_0\rangle \otimes |q_1\rangle \otimes \cdots \otimes |q_{n-1}\rangle
  1. 乐手编号 q₀ 到 qₙ₋₁n 位乐手(量子比特)各自的状态,它们共同构成整支乐队。
    ∣q0⟩,∣q1⟩,…,∣qn−1⟩|q_0\rangle, |q_1\rangle, \ldots, |q_{n-1}\rangle
  2. 张量积符号 ⊗读作“张量积”,表示“编组”。两个比特的状态编组在一起时,不能简单相加,而是用这个符号拼接成更大的状态空间。
    ⊗\otimes
  3. 完整的乐队状态 |ψ⟩全体状态的容量随乐手数指数增长——30 个比特编组起来,状态数已经超过地球上所有原子之和。这就是为什么真实的量子模拟如此吃内存。

量子门操作

总谱上的音符,就是量子门。门是给乐手的具体演奏指令:有的是翻谱(翻转状态),有的是调音(改变相位),有的则是让一位乐手“看另一位乐手的脸色”行事。Cirq 用一套简洁的 API 表达这些动作,其中最基础的是单比特门 X 与 H,以及纠缠主力 CNOT。

X 门像“反转开关”:把 |0⟩ 变成 |1⟩,把 |1⟩ 变回 |0⟩。H 门是 Cirq 中最神奇的“混合器”:它把确定状态变成五五开的叠加态,仿佛让乐手同时准备好两种音色。CNOT 则是“看脸色”的门:只有控制比特为 |1⟩ 时,目标比特才翻转,这一特性是构建纠缠态的关键。它们对应的数学工具是矩阵:

门就是乐手最基础的动作库。Cirq 还允许给门装上“音量旋钮”——参数化门可以在运行前调节参数,这正是后面量子机器学习的伏笔。

X=(0110),H=12(111−1)X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}
  1. X 门的矩阵一个二维方阵,行和列分别对应输入输出状态。它把 |0⟩ 和 |1⟩ 的权重互换,所以叫“翻转门”。
    X=(0110)X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}
  2. 矩阵作用于状态把门看作“指令表”,旧的音色向量乘上这个表,就得到新的音色向量。
    X∣0⟩=∣1⟩X|0\rangle = |1\rangle
  3. H 门的矩阵四个元素全是 1 或 -1,再乘上归一化系数 1/√2。它把确定音色变成“一半 |0⟩ 加一半 |1⟩”的叠加音色。
    H=12(111−1)H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}
  4. 归一化系数 1/√2保证叠加后的概率之和仍为 1,相当于混音器上把两路音轨同时开到 70.7% 音量。
    12\frac{1}{\sqrt{2}}

模拟器与运行

总谱写完,不能直接上正式舞台——排练厅里先试演。Cirq 的 Simulator 就是一座虚拟排练厅,它在经典电脑里完整模拟乐团的每一次演出。sim.run(circuit, repetitions=50) 表示让同一个节目连演 50 遍,每次记录评委亮出的分数,从而得到测量结果的分布。

测量这件事非常特殊:评委一亮分,乐手的叠加态瞬间“坍缩”成某一个确定结果。比如一位乐手明明准备了两种音色,评委一打分,实际听到的只能是其中一种。模拟器能准确模拟这个过程,它依据的正是概率规则:

排练厅还有个进阶模式:DensityMatrixSimulator 支持叠加噪声模型。这相当于在排练厅里加上风声、雨声、观众咳嗽声,模拟真实硬件的退相干。彩排再多次,真实舞台的意外还是比模拟多——所以模拟器好用,但绝不能全信。

P(m)=∣⟨m∣ψ⟩∣2P(m) = |\langle m | \psi \rangle|^2
  1. 目标结果 |m⟩评委可能亮出的某个确定结果,比如“第二位乐手奏出 |1⟩”。
    ∣m⟩|m\rangle
  2. 内积 ⟨m|ψ⟩求“重叠度”——当前状态与目标结果在数学上重合了多少。这是量子力学中的投影操作。
    ⟨m∣ψ⟩\langle m | \psi \rangle
  3. 模平方 |·|²把可能为负数的内积变成非负概率值,就像把振幅的“距离”转成“强度”。
    ∣⟨m∣ψ⟩∣2|\langle m | \psi \rangle|^2
  4. 概率 P(m)评委亮出 m 分的概率。所有可能 m 的概率之和为 1。
    P(m)P(m)

与Qiskit对比

量子编程圈有两位著名指挥:Google 的舞台总监 Cirq,和 IBM 的巡回指挥 Qiskit。Qiskit 诞生于 IBM 的量子云平台,目标是适配全球各地不同厂家的量子硬件;Cirq 则深耕 Google 自家芯片,把“纳秒级时刻编排”打磨到极致。这就好比一位指挥擅长和任何乐团合作,另一位则把某个音乐厅的每一块砖都刻进了脑子里。

时序控制的精细度是二者最大的分水岭。Cirq 的 Moment 抽象天然强调“哪些门同时执行”;Qiskit 的电路更偏向“操作序列”,虽然也有 Pulse 级控制,但使用门槛更高。硬件耦合程度方面,Cirq 的 GridQubit 直接对应芯片拓扑,这让它在编译到 Sycamore 时格外高效。生态上 Qiskit 背靠 IBM Quantum 平台,教学资源与第三方库更丰富;Cirq 则与 Google 的 TensorFlow Quantum 等工具链紧密相连。

为什么“时刻编排”如此重要?因为 NISQ 硬件的每个门都有出错率,门数越多,整场演出越容易走样:

选专属总监还是巡回指挥,取决于你的舞台在哪。做 Google 硬件实验选 Cirq,做跨平台教学与原型选 Qiskit,两者各有拥趸。

F=∏i=1d(1−εi)F = \displaystyle\prod_{i=1}^{d}(1-\varepsilon_i)
  1. 门出错率 εᵢ第 i 个门操作犯错的概率,类似乐手每次演奏可能出现的走音率。
    εi\varepsilon_i
  2. 门深度 d电路从开始到结束总共串了多少层门操作,层数越多,风险越大。
    dd
  3. 连乘符号 ∏把每一层的“成功率”乘起来。每乘一个小于 1 的数,总保真度就掉一截。
    ∏i=1d\prod_{i=1}^{d}
  4. 保真度 F演出对观众而言的还原度。F 随 d 呈指数式衰减,这就是为什么总监要把门数压到最少、把时刻排到最准。

量子机器学习

舞台总监不满足于照着总谱演奏,他想让乐团学会“即兴改编”——这正是量子机器学习。传统机器学习是让模型从数据中找规律,量子机器学习则把规律藏在量子态的干涉图样里。具体做法分三步:先把经典数据编码成量子态,再让参数化量子电路(PQC)对状态做变换,最后用经典优化器调整电路参数,反复迭代。

数据编码线路像是把乐谱转写成乐手习惯的符号——比如用门的旋转角度表示数据值。参数化变分电路则是一块“混音台”,上面许多旋钮(参数 θ)可以微调。VQE(变分量子本征求解器)用它找分子的基态能量,QAOA 用它求解组合优化问题,而量子神经网络(QNN)则把 PQC 当作可训练的网络层。损失函数衡量“当前改编”与“理想和声”的差距:

TensorFlow Quantum 把 Cirq 电路与 TensorFlow 经典优化器缝合在一起,形成“量子-经典混合”流水线。乐团的即兴能力不是天生的,而是一轮轮排练(参数更新)磨出来的。

∣ψ(θ)⟩=U(θ)∣0⋯0⟩,L(θ)=1−∣⟨ψtarget∣ψ(θ)⟩∣2|\psi(\theta)\rangle = U(\theta)|0\cdots0\rangle, \quad L(\theta) = 1 - \left|\langle \psi_{\text{target}} | \psi(\theta)\rangle\right|^2
  1. 参数化电路 U(θ)带旋钮的酉变换,初态 |0⋯0⟩ 经过它变成依赖于 θ 的状态。
    U(θ)∣0⋯0⟩U(\theta)|0\cdots0\rangle
  2. 状态 |ψ(θ)⟩改编后的结果状态,随旋钮转动而改变。
    ∣ψ(θ)⟩|\psi(\theta)\rangle
  3. 目标态 ψ_target我们希望达到的“理想和声”,比如分子最低能量对应的量子态。
    ∣ψtarget⟩|\psi_{\text{target}}\rangle
  4. 内积模平方衡量当前状态与目标态的相似度。1 减去它得到损失 L(θ),损失越小,改编越接近理想效果。
    ∣⟨ψtarget∣ψ(θ)⟩∣2\left|\langle \psi_{\text{target}} | \psi(\theta)\rangle\right|^2

实战量子算法

最后,让我们看一场完整的演出——Bernstein-Vazirani(BV)算法,一个“猜暗号”游戏。幕布后面藏着一个秘密比特串 s,观众可以提问任意串 x,黑盒只回答“x 与 s 的按位点积是奇数还是偶数”。经典玩法是逐位试探:问 100 次才能确定 100 位暗号。而 BV 算法只用一次查询,就能让整个暗号浮出水面。

Cirq 实现这个魔术的关键是构造 Oracle——一张把暗号“刻”进电路的变调卡。做法是:若秘密的第 i 位是 1,就在第 i 个量子比特与辅助比特之间加一个 CNOT 门。然后让所有比特先通过 H 门进入叠加态,经过 Oracle,再通过 H 门,最后测量——测量结果就是秘密本身。Oracle 编码的数学关系是:

在模拟器里运行 BV 电路并重复采样 50 次,几乎每次都能观测到同一个答案——暗号被一次合奏彻底解开。这便是量子查询复杂度的魅力,也是 Cirq 这位舞台总监最得意的一场演出。

f(x)=s⋅x mod 2=(s1x1+s2x2+⋯+snxn) mod 2f(x) = s\cdot x \bmod 2 = (s_1x_1 + s_2x_2 + \cdots + s_nx_n) \bmod 2
  1. 秘密串 s暗号本体,由 0 和 1 组成,比如 1011。
    s=s1s2⋯sns = s_1s_2\cdots s_n
  2. 查询串 x观众(算法)向黑盒提交的问题串。
    x=x1x2⋯xnx = x_1x_2\cdots x_n
  3. 点积 s·x把两个串按位相乘再加总,看每一对“1 和 1 碰到几次”。
    s⋅x=s1x1+s2x2+⋯+snxns\cdot x = s_1x_1 + s_2x_2 + \cdots + s_nx_n
  4. 模 2 运算 mod 2只取奇偶性——结果是 0 表示偶数,1 表示奇数。黑盒就回答这个 0 或 1。
     mod 2\bmod 2

AI 应用场景

量子化学模拟:VQE 求解分子基态能量

阶段:量子算法研发与实验验证

解决的问题:传统化学模拟在分子电子结构上计算量随体系指数爆炸,经典方法把大量算力耗在近似上。Cirq 的参数化电路能构造试凑波函数,配合经典优化器反复调节参数,逼近分子基态能量,把指数级难题变成可迭代的优化问题。

具体案例:量子化学团队用 cirq.Simulator 搭建一个 4 量子比特的 VQE 电路表示氢气分子,将键长数据编码进参数门,循环上百轮后获得与理论值吻合的基态能量曲线。整个过程先在模拟器上跑通,再提交到 Google 量子硬件验证。

混合量子机器学习:量子神经网络做分类

阶段:模型训练与实验对比

解决的问题:经典神经网络在特征空间纠缠表达上代价高昂。用 Cirq 构造参数化量子电路作数据编码层和变分层,数据先映射到高维量子态,再用经典优化器更新门的参数,形成“量子特征提取 + 经典分类头”的混合模型。

具体案例:机器学习工程师用 TensorFlow Quantum 与 Cirq 搭建量子分类器,对手写数字的降维特征做二分类。实验分别记录量子模型与经典逻辑回归的准确率随训练轮次的变化,验证叠加态特征映射在小样本任务上的表现。

Python 演示

python40 行
import collectionsimport cirq  def build_bv_circuit(secret):    n = len(secret)    qubits = [cirq.NamedQubit('q{}'.format(i)) for i in range(n)]    answer = cirq.NamedQubit('ans')    circuit = cirq.Circuit()    circuit.append(cirq.X(answer))    circuit.append(cirq.H(answer))    for q in qubits:        circuit.append(cirq.H(q))    for q, s in zip(qubits, secret):        if s == 1:            circuit.append(cirq.CNOT(q, answer))    for q in qubits:        circuit.append(cirq.H(q))    circuit.append(cirq.measure(*qubits, key='m'))    return circuit  def main():    secret = [1, 0, 1, 1]    circuit = build_bv_circuit(secret)    print('circuit:')    print(circuit)    sim = cirq.Simulator()    result = sim.run(circuit, repetitions=50)    counts = collections.Counter(tuple(row) for row in result.measurements['m'])    best, cnt = counts.most_common(1)[0]    guess = ''.join(str(b) for b in best)    secret_str = ''.join(map(str, secret))    print('secret:', secret_str)    print('guess:', guess, '  counts:', cnt, '/50')    print('match:', guess == secret_str)  if __name__ == '__main__':    main()
目的:用 Cirq 完整实现 Bernstein-Vazirani 量子算法,构造 Oracle 编码秘密串,在模拟器上重复采样 50 次并验证“一次查询读出全部暗号”。
  1. qubits = [cirq.NamedQubit('q{}'.format(i)) for i in range(n)]给 n 位乐手起名字,创建量子比特列表。
  2. circuit.append(cirq.X(answer))先把辅助比特翻转到 |1⟩,为后面的 H 门叠加做准备。
  3. for q in qubits: circuit.append(cirq.H(q))让所有乐手进入叠加态,这是 BV 算法的第一步魔法。
  4. if s == 1: circuit.append(cirq.CNOT(q, answer))把秘密串写进电路:暗号位是 1 时插入受控翻转门。
  5. circuit.append(cirq.measure(*qubits, key='m'))在总谱结尾给所有比特装上评委,记录测量结果。
  6. result = sim.run(circuit, repetitions=50)在虚拟排练厅连演 50 遍,收集全部评分。
  7. counts.most_common(1)[0]取出现次数最多的答案,它就是要猜的暗号。

常见误区

误区都是 Python 量子框架,能画电路、能模拟、能上量子硬件,换个厂商换个包名而已,写出来的代码大同小异。

正解两个框架的设计哲学差异明显。Cirq 以 Moment(同一时刻的操作组)为核心抽象,强调纳秒级时序编排,紧贴 Google 芯片的二维格点拓扑;Qiskit 更偏向跨硬件云平台,操作序列清晰、教学生态丰富,虽然也支持脉冲级控制但门槛更高。好比专属舞台总监和全球巡演指挥,擅长的事完全不同。

为何常见:初学者通常从“搭建电路 → 模拟 → 测量”的相似流程入手,框架表面的 API 相似性掩盖了背后的时序控制理念差异。

误区模拟器返回理想结果,说明电路逻辑没问题,那上真实量子芯片也应该得到一样的答案。

正解模拟器是无声无噪的“理想排练厅”,真实硬件则有退相干、门误差、连通性限制。门数一多,保真度按 (1−ε)ᵈ 指数衰减;芯片上不相邻的比特执行双门操作还需要额外的 SWAP 搬运。因此必须用含噪模拟、错误缓解和硬件校准来弥合差距。

为何常见:教程大多从模拟器演示出发,让初学者误以为模拟器就是硬件的完美替身,忽略了 NISQ 时代“噪声才是主角”的现实。

误区经典计算里步骤越多通常结果越细,量子电路也应该门数越多、表达力越强、答案越准。

正解真实硬件上每增加一个门就多一分噪声风险,保真度随门深度指数下降。Cirq 的 Moment 编排理念恰恰是“少而准”:把不必要的门合并、把同刻操作对齐,用尽量浅的电路完成计算。较深的电路只适合在理想模拟器中评估理论效果。

为何常见:叠加态“同时处理所有可能”的直觉让人误以为反正处理能力强,多走几步也没关系,忽略了叠加态同时也会被噪声破坏。

误区测量就是读个最终答案,像查看成绩单一样,量子态应该继续保持不变。

正解测量会瞬间坍缩量子态,把叠加态压缩到某一个确定态,所有相干叠加信息当场消失。P(m)=|⟨m|ψ⟩|² 说明“看一眼”本身就是一个破坏性操作。所以 Cirq 中测量门通常放在电路最后,并且测量后若继续追加操作,只能作用于坍缩后的经典化状态。

为何常见:经典程序里读取变量不会改变变量值,这套直觉被直接移植到了量子世界,忽略了量子测量特有的坍缩特性。

面试题

Q1. Cirq 是由哪家公司开源的量子计算框架?

单选题 · easy

  • A.谷歌量子团队← 正确答案
  • B.IBM 量子团队
  • C.微软量子团队
  • D.亚马逊量子团队

答案:A。Cirq 由 Google Quantum AI 团队于 2018 年开源,所有抽象都紧贴 Google 自家 NISQ 硬件的物理特性。IBM 的对应框架是 Qiskit,微软是 Q#,亚马逊则主要通过 AWS Braket 提供多框架接入。

Q2. 在 Cirq 中,把量子比特放到二维网格坐标上、最贴近 Google 芯片物理布局的类是什么?

单选题 · easy

  • A.基类 cirq.Qubit
  • B.格点类 cirq.GridQubit← 正确答案
  • C.直线类 cirq.LineQubit
  • D.模拟器类 cirq.Simulator

答案:B。GridQubit 用行列坐标对应芯片上的物理量子比特,适合 Sycamore 这类二维格点结构;LineQubit 只管一维编号,Qubit 是抽象基类,Simulator 是模拟器而非比特类。

Q3. 关于 Cirq 的设计目标和特点,以下正确的是?

多选题 · easy

  • A.重点适配 NISQ 噪声硬件← 正确答案
  • B.主要面向容错量子计算机
  • C.支持纳秒级的门时序安排← 正确答案
  • D.只能做经典电路仿真

答案:AC。Cirq 生来为 NISQ 设备服务,用 Moment 抽象狠抓门操作的精确时刻,这是它区别于通用框架的最大特色。容错量子计算机尚未到来,Cirq 并不专注于此,它也绝不是经典电路仿真器。

Q4. 在 Cirq 中,Moment 表示什么?

单选题 · mid

  • A.一条量子比特线路
  • B.同一时刻的并行操作组← 正确答案
  • C.一个单比特逻辑门
  • D.一次测量的结果集合

答案:B。Moment 是“同一时刻”的音乐小节,把同时发生的门操作归为一组。它确保你清楚知道哪些门在哪个时刻同时演奏,这正是 Cirq 时刻编排思想的精华所在。

Q5. 对 |0⟩ 施加 H 门后,量子比特会变成什么?

单选题 · mid

  • A.保持为 |0⟩ 不变
  • B.变成五五开叠加态← 正确答案
  • C.一定翻转为 |1⟩
  • D.变成二比八叠加态

答案:B。H 门把确定态变成 50% 概率的叠加态,数学形式为 (|0⟩+|1⟩)/√2。它像让乐手同时准备好两种音色,测量时才随机亮出其中一种。

Q6. CNOT 门的作用是?

单选题 · mid

  • A.无条件翻转两个量子比特
  • B.控制位为 1 时翻转目标位← 正确答案
  • C.交换两比特的状态
  • D.将两个比特合并呈现

答案:B。CNOT 是“看脸色行事”的门:只有控制比特处于 |1⟩ 时目标比特才翻转,控制比特为 |0⟩ 则目标不动。它是制造量子纠缠的重要纽带。

Q7. 在 Bernstein-Vazirani 问题中,经典黑盒最坏需要多少次查询才能确定 n 位秘密?

单选题 · hard

  • A.恰好 1 次
  • B.恰好 n 次← 正确答案
  • C.恰好 2ⁿ 次
  • D.永远无法确定

答案:B。经典只能逐位试探,最坏需要 n 次查询;而量子 BV 算法只用 1 次 oracle 调用就能读出整个秘密串。这正是量子查询复杂度优势的典型示范。

Q8. 若每层门的错误率 ε=0.001,总门深度 d=1000,则电路保真度 F 约为多少?

单选题 · hard

  • A.约 99.0%
  • B.约 36.8%← 正确答案
  • C.约 50.5%
  • D.约 99.9%

答案:B。根据 F=(1−ε)ᵈ,代入得 0.999¹⁰⁰⁰ ≈ e⁻¹ ≈ 36.8%。这说明噪声随门数指数累积,所以 Cirq 才要像舞台总监一样把电路排得又浅又准。

Q9. 关于 Cirq 的模拟器,以下说法正确的是?

多选题 · mid

  • A.模拟理想态演化过程← 正确答案
  • B.支持密度矩阵含噪模拟← 正确答案
  • C.能完全替代真实硬件
  • D.可设置重复采样次数← 正确答案

答案:ABD。模拟器是“虚拟排练厅”,既能跑理想无噪声线路,也能叠加噪声模型做密度矩阵模拟,还能用 repetitions 参数批量采样;但它终究是经典计算机的模拟,无法完全复现真实硬件的物理表现。

Q10. 用参数化量子电路做机器学习时,哪些属于常见组件或流程?

多选题 · extreme

  • A.数据编码线路编码经典输入← 正确答案
  • B.可训练参数门充当网络层← 正确答案
  • C.经典优化器反复更新参数← 正确答案
  • D.量子电路完全替代经典网络

答案:ABC。量子机器学习是“量子电路 + 经典优化”的混血:数据编码、变分层和经典更新三步缺一不可。量子层擅长做特征映射,但远不能完全替代经典神经网络。