Qiskit 2025中如何从PrimitiveResult获取量子硬件运行计数?
Qiskit 2025更新后从PrimitiveResult提取硬件计数的正确方法
新版Qiskit的
Sampler返回的PrimitiveResult(实际为SamplerResult)中,每个电路的结果以**准分布(QuasiDistribution)**形式存储,无需手动计算,直接用内置方法即可转换为计数。修正后的完整代码:
with Session(backend=backend) as session: sampler = Sampler() # 若需指定采样次数,初始化时可设置:Sampler(options={"shots": 1024}) job = sampler.run(circ_list_t) result = job.result() # 提取每个电路的计数 for circuit_idx, quasi_dist in enumerate(result.quasi_dists): # 调用准分布内置方法直接转换为计数 counts = quasi_dist.to_counts() print(f"第{circuit_idx+1}个电路的计数: {counts}")
关键说明:
result.quasi_dists是列表,顺序与传入的circ_list_t电路列表完全对应QuasiDistribution.to_counts()会自动根据采样次数(shots)将概率转为整数计数,处理了浮点精度和四舍五入问题,比手动实现更可靠- 若需强制指定采样次数,可传入参数:
quasi_dist.to_counts(shots=2048)
旧方法失效原因:
新版Qiskit重构了PrimitiveResult的结构,不再通过data.meas路径获取准分布,需直接通过result.quasi_dists访问。
内容的提问来源于stack exchange,提问作者Daniel Coelho
相关产品推荐
相关产品推荐

