# Demo 3:Simon 算法 > 第 4 章 经典量子算法 · [本章演示](index.md) · [代码演示总索引](../index.md) **可视化**:3 子图 —— 3-qubit 隐藏 s=110 经典高斯消元恢复 **对应教程**:[第 4 章 经典量子算法 中相关小节](https://tutorial.chenzhaoyun.com/quantum-tutorial/ch04-classic-algorithms/) · 依赖安装:`pip install "unified-quantum[visualization,simulation]"` ## 实现要点 Oracle 选取 f(x) = f(x XOR s), 满足: f(000)=f(110)=0, f(001)=f(111)=1, f(010)=f(100)=2, f(011)=f(101)=3. 构造此 oracle 仅需 3 个 CNOT (具体推导见教程), 1 次查询就能从 输入寄存器的量子 Fourier 采样得到线性方程 y . s = 0 (mod 2). 经典需要 O(n . 2^n) 次查询, Simon 算法只需 O(n) 次即可解出 s. ## 完整源码 ```{literalinclude} 03_simon_3qubit.py :language: python :linenos: :caption: demos/ch04-classic-algorithms/03_simon_3qubit.py ``` ## 运行结果 ![Demo 3:Simon 算法](03_simon_3qubit.png) ## 运行方式 ```bash # 仓库根目录执行;输出 PNG 到 demos/ch04-classic-algorithms/03_simon_3qubit.png,关键统计到 stdout .venv/bin/python3 demos/ch04-classic-algorithms/03_simon_3qubit.py ``` --- [← 本章演示](index.md) · [↑ 代码演示总索引](../index.md) · [⌂ 教程门户](https://tutorial.chenzhaoyun.com/)