You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qristal SDK中定义电路运行次数及实现规模化运行?

Qristal SDK 运行次数与规模化运行问题解答

一、定义量子电路的运行次数

在Qristal SDK结合qpp后端的场景中,你可以通过指定**shots(运行次数)**参数控制电路重复执行的次数。具体操作在模拟器执行阶段传入该参数即可,示例如下:

# 方式1:通过set_shots方法设置全局运行次数
my_sim.set_shots(1024)
# 执行电路
results = my_sim.run()

# 方式2:直接在run方法中指定shots
results = my_sim.run(shots=2048)

shots的数值决定了电路重复运行的次数,每次运行会生成一组测量结果,最终模拟器会返回所有shots的统计结果分布——次数越多,统计出的概率越接近理论值。

二、规模化运行的选择:重复运行 vs 扩展量子比特数

这两种操作的核心目的完全不同,需根据需求选择:

  • 增加运行次数(shots):用于提升测量结果的统计准确性。量子测量本身是概率性的,单次运行只能得到一个随机结果,多次重复后统计的结果频率会逐渐逼近理论概率。比如你当前的Bell态电路,理论上|00>和|11>各占50%概率,增加shots能让统计出的比例更接近这个理论值,减少随机误差。
  • 扩展模拟量子比特数:用于处理更复杂的量子系统或算法。比如从2比特扩展到更多比特,是为了测试需要更多量子资源的算法(如多比特Grover搜索、量子相位估计等),这和统计准确性无关,而是为了适配更复杂的应用场景。

简单总结:如果要让当前电路的结果更准确,加shots;如果要开发更复杂的量子应用,才需要扩展比特数。

你的实验电路代码

my_sim.instring = '''
__qpu__ void QUANTUMPROGRAM(qreg q)
{
  OPENQASM 2.0;
  include "qelib1.inc";
  creg c[2];
  h q[0];
  cx q[0], q[1];
  measure q[1] -> c[1];
  measure q[0] -> c[0];
}
'''

内容的提问来源于stack exchange,提问作者Nina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:38:22