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 的核心概念:
System.clear() - 每次新程序开始时调用
add_register - 创建命名寄存器
SparseState - 稀疏量子态
Operators - 算子对状态进行变换
StatePrint - 打印状态查看结果