代码演示

16 章 × 3 个 = 48 个可运行的 uniqc Python 演示,每个演示独立成页:实现要点、完整源码与运行结果。

配套:UnifiedQuantum 完整教程 · API 文档 · ⌂ 教程门户

安装:pip install "unified-quantum[visualization,simulation]"

每个 demo 是一个独立 Python 脚本,使用 unified-quantum PyPI 包(from uniqc import Circuit, submit_task, wait_for_result),通过 dummy:local:simulator 后端本地执行,无需云平台凭证。跑完会输出关键统计到 stdout + 保存 matplotlib PNG 到同名 .png 文件。

模块一:基础与工具(ch01–ch02,6 个 demo)

章

demo

核心可视化

ch01 基础

1. Bloch 球轨迹 — 6 个基准态的 ⟨X⟩,⟨Y⟩,⟨Z⟩ 测得 Bloch 矢量画在单位球上

球面 6 个箭头

2. |±⟩ 测量概率 — 在 X/Y/Z 基上 P(0)/P(1) 分组柱图

4 根/基 柱状

3. Bell 态 — 4 个 Bell 态联合测量直方图

4 子图柱状

ch02 QNN

1. 参数化 RY 扫描 — 扫描 θ 画 ⟨Z⟩ = cos θ 曲线 + 误差标注

单图曲线+误差条

2. 参数平移梯度 — 解析 / 平移 / 有限差分梯度对比

双图:曲线+误差柱

3. QNN 拟合 sin(x) — 1-qubit re-uploading ansatz 网格搜索最优点

双图:MSE 等高线+拟合曲线

模块二:算法主线(ch03–ch04,6 个 demo)

章

demo

核心可视化

ch03 算法基础

1. Deutsch-Jozsa — 4-qubit 常数 vs 平衡 Oracle 一次查询

双子图柱状

2. Grover 4-qubit — 迭代 0/1/2/4 测量概率演化

2×2 子图

3. QFT 振幅相位 — QFT_4|0010⟩ 16 个分量的极坐标散点

双图:振幅+相位

ch04 经典算法

1. Shor N=15 — 因子分解 15=3×5 全流程 + 周期读取

3 子图(U_7 矩阵、周期轨道、QPE 相位)

2. Bernstein-Vazirani — 4-qubit 一次查询读出隐藏 s=1011

双子图(测量柱+oracle 示意)

3. Simon 算法 — 3-qubit 隐藏 s=110 经典高斯消元恢复

3 子图

模块三:现代算法体系(ch05–ch08,12 个 demo)

章

demo

核心可视化

ch05 QSP/QSVT

1. Trotter Ising 链 — 一阶/二阶 Trotter 误差对数曲线

3 子图(H+误差+末态分布)

2. 块编码 — 2×2 厄米矩阵 A 的 4-qubit 块编码 U_A 验证

3 子图(U_A+A+A/α+测量)

3. QSVT sign 近似 — 17 个 x 处 P(0)/P(1) 与 sign(x) 对比

3 子图(相位+多项式+测量)

ch06 科学计算

1. HHL 2×2 — QPE 提本征相位 + 重建 x = A⁻¹|b⟩

单子图

2. Gibbs 态制备 — 4 β 扫描的 P(|00⟩)=1/Z 反推

单子图(4 柱对比)

3. QAOA 4-node MaxCut — 25×25 (γ,β) 网格扫描

2D 热图+最优 cuts

ch07 量子信息

1. BB84 QKD — 1000 轮 QBER 与密钥长度对比

双子图

2. 态层析 — 3 态 3 基重建 Bloch 矢量

3D 球+3 子图

3. 不可克隆 — CNOT 克隆机对 9 态保真度 vs B-H 上界

双图:保真度+Bob Bloch 长度

ch08 QML

1. VQE H₂ — UCCSD + COBYLA 估 H₂ 基态 ≈ -2.016 Ha

双子图(收敛+vs FCI)

2. QAOA MaxCut 4-node — 14×14 网格+爬山轨迹

双图(热图+top bitstring)

3. 量子核 SVM — 2-qubit ZZFeatureMap 核矩阵 + 决策边界

双图(核矩阵+边界)

模块四:应用与前沿专题(ch09–ch16,24 个 demo)

章

demo

核心可视化

ch09 数论

1. Shor 离散对数 — N=15 离散对数骨架 + QPE 相位

双图(轨道+直方图)

2. 模幂 U_7 — 16 输入态全测 + QPE

3 子图

3. CRT 恢复 — Z_3^* + Z_5^* 拆解后合并

3 子图(子群轨道+CRT 流程)

ch10 HSP

1. Simon HSP — 3-qubit H^⊥ 样本 + F_2 高斯消元

双图(分布+RREF)

2. Abel HSP 离散对数 — N=15 拆 p1, p2 + CRT

双图

3. 隐藏位移 — 7-qubit van Dam 量子算法 + 经典/量子查询数对比

双图

ch11 查询复杂度

1. 碰撞 BHT — N=8 标记命中 + log-log 查询数对比

双图

2. 元素唯一性 — toy 数组 + O(N) vs O(N^{2/3}) + Johnson 平衡

双图

3. 矩阵秩 — 4×4 高斯消元 + 量子查询复杂度

3 子图

ch12 图算法

1. K3 量子行走 — 4 步位置概率演化

双图(轨迹+经典对照)

2. Welded Tree — 14 顶点焊缝树 + 经典 vs 量子 P(EXIT)

2 子图

3. Childs-Goldstone 空间搜索 — C4 + γ=1/√2 + Rabi 振荡

3 子图

ch13 拓扑/统计物理

1. Kitaev 链 — 6-site H 谱 + ⟨Z⟩ 边缘 + (J,K) 能隙

3 子图

2. 配分函数 — Z = 1/P(ground) 估 Z(β)

单子图(4 柱)

3. 字符串重写 — 经典步数 vs Grover 迭代

双图

ch14 优化

1. QAOA K4 MaxCut — 11×11 网格 + 爬山

双图(热图+top cuts)

2. 凸优化 — FD 经典 vs Jordan 量子梯度

2 子图

3. QAOA 投资组合 — 3 资产 Markowitz QUBO

双图

ch15 谱方法

1. 量子 PCA — 4×4 块编码+QPE 估前 2 特征值

单子图

2. 主特征向量 — 经典 power iter + 量子态制备

双图

3. 谱和 — Tr(A^k) Hadamard/QPE 估

单子图(4 柱对比)

ch16 密码分析

1. Shor 破 RSA — 3+3 qubit QPE 估 r=4 + GCD

单子图

2. Steane 量子译码 — 7-qubit CSS 码 + syndrome 校正

单子图

3. Grover 密码破解 — 8-qubit 搜索 P=0b11010110

单子图

使用方式

跑单个 demo

# 从仓库根目录
.venv/bin/python3 demos/ch01-basics/01_bloch_sphere.py
# 输出 PNG 到 demos/ch01-basics/01_bloch_sphere.png
# 关键统计到 stdout

跑全章

for f in demos/ch01-basics/*.py; do
  .venv/bin/python3 "$f"
done

跑全部 48 个

for f in demos/ch*/*.py; do
  .venv/bin/python3 "$f"
done

技术约定

  • 后端:dummy:local:simulator(无云依赖)

  • shots:默认 2000(多数 demo 总 shots ≤ 3000)

  • 可读性:matplotlib 默认 DejaVu Sans 不带中文,标签统一用英文;中文仅出现在 docstring 与 stdout

  • 公式:LaTeX 用 $\sqrt{N}$ 等 mathtext 兼容语法(无单参数 \sqrt N)

  • 代码量:每个 .py < 200 行

已知限制

  • dummy:local:simulator 没有真正的中间测量,phase kickback / teleportation 类 demo 只能展示终态分布

  • add_gate('U', matrix=...) 不支持;自定义酉只能通过基础门组合 + get_matrix() 验证

  • result.get_expectation(...) 只支持单 Z 测;多 Pauli 串会抛 NotImplementedError

  • 大矩阵(如 4×4 以上)的 block-encoding demo 受限,多数用 2×2 / 4×4 + 经典对照

相关链接