Skip to Content
文档UnitaryLab 模拟器用户手册线路基础创建线路与寄存器

创建线路与寄存器

Circuit 保存量子门、测量映射和寄存器信息,是构建、执行、绘图、导出和编译线路的统一入口。简单线路可直接传入量子比特数;需要多寄存器或明确命名时再显式创建寄存器。

推荐导入

from unitarylab import Circuit, Register, ClassicalRegister

创建 Circuit

import numpy as np from unitarylab import Circuit, Register, ClassicalRegister # 直接指定比特数,同时创建默认 q/c 寄存器 qc = Circuit(3) # 从已知状态开始 qc_from_state = Circuit(np.array([1, 0, 0, 0], dtype=complex)) # 自定义寄存器名称和布局 qr = Register("q", 2) cr = ClassicalRegister("c", 2) qc_named = Circuit(qr, cr, name="Bell Circuit")

Circuit(n) 会创建大小相同的默认量子寄存器 q 和经典寄存器 c。显式使用 Register 构造线路时,如需测量,应同时提供 ClassicalRegister。

构造方式适用场景
Circuit(n)单个量子/经典寄存器,二者大小均为 n
Circuit(state)从状态向量创建线路,向量长度必须为
Circuit(qreg, creg, name=...)自定义寄存器名称与布局

状态向量必须是一维、非零且可归一化。线路量子比特索引从 0 开始;传入不存在的索引会触发异常。

Register

from unitarylab import Register qr = Register("q", 3) q0 = qr[0] first_two = qr[:2] selected = qr[[0, 2]]

量子寄存器支持整数、切片和索引列表访问。索引必须在寄存器范围内。

ClassicalRegister

from unitarylab import Circuit, Register, ClassicalRegister cr = ClassicalRegister("c", 2) print(cr.values) # [-1, -1] qc = Circuit(Register("q", 2), cr) qc.measure([0, 1], [0, 1]) result = qc.execute() print(result.classical_registers["c"])

经典比特初始值为 -1,线路执行测量后更新。量子门与测量方法见量子门与测量。

使用建议

  • 将寄存器视为索引视图;门操作最终仍作用于线路的全局量子比特索引。
  • 需要读取测量值时,应从 ExecutionResult 读取,不要把构造线路时的经典寄存器当作多 shots 统计结果。
  • 组合子线路前先核对宽度和目标索引,避免隐式布局错误。

相关页面

最后更新于