PySparQ 快速入门

本教程介绍 PySparQ 的基本使用方法。

安装

pip install pysparq

基本概念

PySparQ 基于 Register Level Programming 范式,直接操作命名寄存器而非单个量子门。

[ ]:
import pysparq as ps

# 清理静态状态(每次新程序必须调用!)
ps.System.clear()

# 创建寄存器
ps.System.add_register("counter", ps.UnsignedInteger, 4)  # 4 位无符号整数
ps.System.add_register("flag", ps.Boolean, 1)             # 单量子比特

# 创建稀疏态
state = ps.SparseState()
print(f"初始基态数量: {state.size()}")

初始化寄存器

[ ]:
# 使用 Init_Unsafe 初始化寄存器值
ps.Init_Unsafe("counter", 5)(state)
ps.Init_Unsafe("flag", 0)(state)

# 打印状态
ps.pprint(state)

创建叠加态

[ ]:
# Hadamard 创建均匀叠加
ps.Hadamard_Bool("flag")(state)

print("Hadamard 后:")
ps.pprint(state)

算术操作

[ ]:
# 创建结果寄存器
ps.System.add_register_synchronous("result", ps.UnsignedInteger, 4, state)

# 加法: result ^= counter + 3
ps.Add_UInt_ConstUInt("counter", 3, "result")(state)

print("加法后:")
ps.pprint(state)

查询寄存器信息

[ ]:
# 获取寄存器元信息
print(f"counter 大小: {ps.System.size_of('counter')} 比特")
print(f"counter 类型: {ps.System.type_of('counter')}")
print(f"counter ID: {ps.System.get_id('counter')}")
print(f"量子比特总数: {ps.System.get_qubit_count()}")

条件操作

[ ]:
# 创建条件加法(当 flag 非零时执行)
ps.System.clear()
ps.System.add_register("a", ps.UnsignedInteger, 4)
ps.System.add_register("b", ps.UnsignedInteger, 4)
ps.System.add_register("result", ps.UnsignedInteger, 4)
ps.System.add_register("ctrl", ps.Boolean, 1)

state = ps.SparseState()
ps.Init_Unsafe("a", 3)(state)
ps.Init_Unsafe("b", 5)(state)
ps.Init_Unsafe("ctrl", 1)(state)  # ctrl = 1, 条件激活

# 条件加法
ps.Add_UInt_UInt("a", "b", "result").conditioned_by_nonzeros("ctrl")(state)

print("条件加法结果:")
ps.pprint(state)

总结

PySparQ 的核心概念:

  1. System.clear() - 每次新程序开始时调用

  2. add_register - 创建命名寄存器

  3. SparseState - 稀疏量子态

  4. Operators - 算子对状态进行变换

  5. StatePrint - 打印状态查看结果