第 16 课 · 块编码——SELECT/PREPARE 与三种构造 · 模块三:现代算法体系

构造三 对角矩阵:一个辅助比特就够

  • 题面:$D = \mathrm{diag}(d_1, \ldots, d_N)$、$|d_j| \le \alpha$、$m_a = 1$,取 $U_A = \sum_j|j\rangle\langle j| \otimes R_y(2\cdot\arccos(d_j/\alpha))$,其中 $R_y(2\theta) = [[\cos\theta, -\sin\theta],[\sin\theta, \cos\theta]]$
  • 演算(教材练习 4:$D = \mathrm{diag}(1, -1)$、$\alpha = 1$):
    1. $\theta_1 = \arccos(d_1/\alpha) = \arccos(1) = 0$ → $R_y(0) = [[1, 0],[0, 1]]$
    2. $\theta_2 = \arccos(d_2/\alpha) = \arccos(-1) = \pi$ → $R_y(2\pi) = [[-1, 0],[0, -1]]$
    3. 验证:$\langle 0|R_y(2\theta_j)|0\rangle = \cos\theta_j = d_j/\alpha$——$\cos 0 = 1$ ✓、$\cos\pi = -1$ ✓
    4. 左上块 $= \sum_j|j\rangle\langle j|\cdot(d_j/\alpha) = D/\alpha = D$
  • 结果框:旋转角里直接写着对角元 $\theta_j = \arccos(d_j/\alpha)$;$\alpha \ge \max_j|d_j|$ 由 arccos 定义域 $[-1, 1]$ 强制
  • 局限卡:门数 $O(N)$、$N = 2^n$ 随比特数指数增长 $\Rightarrow$ 仅对小系统或结构化(稀疏、平滑)对角阵实用;方法四:有 QRAM 时任意矩阵 $O(\mathrm{poly}(n))$ 编码(物理实现是重大挑战,第 25 课细讲)
类型worked-example