上一章: 量子中间编译
下一章: 算子
量子程序绘制教程
本文档提供了如何使用 draw_qprog 函数来生成量子程序对象(QProg)的图形表示的指南。
函数概述
draw_qprog 函数用于生成给定量子程序的图形表示。它允许自定义绘制格式,并提供详细的可视化选项。
- 注解
- expend_map:
用于控制绘制展开选项的映射。默认值:{ {"all", 1} }
(展开所有子程序)。
- 该键表示要展开的线路名称,取值可以是
0
、1
或 2
。
0
表示不展开,1
表示展开当前线路但不展开其子线路,2
表示展开所有线路。
- param_show:
指示是否在绘制结果中显示参数。默认值:false
。
示例用法
以下是如何使用 draw_qprog 函数的基本示例:
Python
prog = QProg()
prog << H(1)<< H(0)
circuit = QCircuit()
circuit << CNOT(1,2) << CNOT(2,3)
prog << circuit
print(draw_qprog(circuit))
print(draw_qprog(prog))
print(draw_qprog(prog, expend_map={}))
程序的输出结果如下所示:
q_1: |0>────*── ──────
┌──┴─┐
q_2: |0>─┤CNOT├ ───*──
└────┘ ┌──┴─┐
q_3: |0>─────── ┤CNOT├
└────┘
c : / ═
┌─┐
q_0: |0>─┤H├ ────── ──────
├─┤
q_1: |0>─┤H├ ───*── ──────
└─┘ ┌──┴─┐
q_2: |0>──── ┤CNOT├ ───*──
└────┘ ┌──┴─┐
q_3: |0>──── ────── ┤CNOT├
└────┘
c : / ═
┌─┐
q_0: |0>─┤H├ ────────────────
├─┤ ┌──────────────┐
q_1: |0>─┤H├ ┤0 ├
└─┘ │ │
q_2: |0>──── ┤1 QCircuit_0 ├
│ │
q_3: |0>──── ┤2 ├
└──────────────┘
c : / ═
也可以使用 print 结合 set_print_options 来打印 prog
和 circuit
,这更加方便。
此外,还可以设置显示精度、是否显示参数以及显示长度。
示例用法
以下是 set_print_options 函数的基本示例:
Python
prog = QProg()
prog << H(1)<< H(0)
circuit = QCircuit()
circuit << CNOT(1,2) << CNOT(2,3) << RX(0,3.1415926)
prog << circuit
print(prog)
set_print_options(precision=2)
print(prog)
set_print_options(param_show=False)
print(prog)
程序的输出结果如下所示:
┌─┐ ┌──────────────┐
q_0: |0>─┤H├ ┤RX(3.14159260)├ ──────
├─┤ └──────────────┘
q_1: |0>─┤H├ ───*──────────── ──────
└─┘ ┌──┴─┐
q_2: |0>──── ┤CNOT├────────── ───*──
└────┘ ┌──┴─┐
q_3: |0>──── ──────────────── ┤CNOT├
└────┘
c : / ═
┌─┐ ┌────────┐
q_0: |0>─┤H├ ┤RX(3.14)├ ──────
├─┤ └────────┘
q_1: |0>─┤H├ ───*────── ──────
└─┘ ┌──┴─┐
q_2: |0>──── ┤CNOT├──── ───*──
└────┘ ┌──┴─┐
q_3: |0>──── ────────── ┤CNOT├
└────┘
c : / ═
┌─┐ ┌──┐
q_0: |0>─┤H├ ┤RX├── ──────
├─┤ └──┘
q_1: |0>─┤H├ ───*── ──────
└─┘ ┌──┴─┐
q_2: |0>──── ┤CNOT├ ───*──
└────┘ ┌──┴─┐
q_3: |0>──── ────── ┤CNOT├
└────┘
c : / ═