如何运行Qiskit中的QuantumCircuit?无需拆分可视化与执行代码
运行QuantumCircuit并获取输出(无需拆分可视化与执行程序)
当然可以,你完全能在同一个脚本里完成量子电路的构建、可视化、模拟执行以及结果输出,不需要拆分程序。下面是整合后的代码示例:
# importing Qiskit from qiskit import IBMQ, Aer from qiskit.providers.ibmq import least_busy from qiskit import QuantumCircuit, transpile, assemble # import basic plot tools from qiskit.visualization import plot_histogram # from qiskit_textbook.tools import simon_oracle deutsch_circuit = QuantumCircuit(2, 1) deutsch_circuit.h(0) deutsch_circuit.x(1) deutsch_circuit.h(1) deutsch_circuit.cx(0, 1) deutsch_circuit.h(0) deutsch_circuit.measure(0, 0) # 可视化量子电路 deutsch_circuit.draw() # 普通脚本会弹出窗口显示;Jupyter环境直接渲染 # 选择Qiskit Aer模拟器 simulator = Aer.get_backend('qasm_simulator') # 编译电路以适配后端 compiled_circuit = transpile(deutsch_circuit, simulator) # 执行电路,设置shots为测量次数 job = simulator.run(compiled_circuit, shots=1024) # 获取执行结果 result = job.result() counts = result.get_counts(deutsch_circuit) # 输出测量统计结果 print("测量结果统计:", counts) # 绘制结果直方图 plot_histogram(counts).show() # 普通脚本弹出窗口;Jupyter环境可改用display(plot_histogram(counts))
关键说明:
- 可视化与执行整合:脚本中先通过
deutsch_circuit.draw()完成电路可视化,接着直接调用模拟器执行电路并获取结果,全程无需拆分程序。 - 模拟器执行逻辑:
Aer.get_backend('qasm_simulator')选择经典模拟器来模拟量子电路运行。transpile用于将电路编译为后端可识别的格式,适配不同模拟器或真实量子硬件。simulator.run()执行电路,shots参数指定重复测量的次数。result.get_counts()提取各测量结果的出现次数。
- 环境适配:如果在Jupyter Notebook中运行,用
display(deutsch_circuit.draw())和display(plot_histogram(counts))会更适配交互式环境;普通Python脚本则用draw()和plot_histogram(counts).show()弹出图形窗口。
如果后续需要在真实量子硬件上运行,只需替换模拟器为IBMQ的硬件后端,流程完全一致,同样可以在同一个脚本内完成所有操作。
内容的提问来源于stack exchange,提问作者joraeune
相关产品推荐
相关产品推荐

