# 01、量子程序编程实例
【例1】编程实例: 创建并输出Bell态观测量子线路,在模拟器上执行1000次,以文本和直方图的形式给出运行结果。
解:
代码如下。
js #CH6-1.ipynb: Qiskit量子程序代码框架 #导入库函数 from qiskit import(QuantumCircuit,execute,Aer) from qiskit.visualization import plot_histogram #创建量子线路 circuit =QuantumCircuit(2,2) circuit.h(0) circuit.cx(0,1) circuit.measure(\[0,1\],\[0,1\]) circuit.draw(output='mpl') #模拟器运行 simulator =Aer.get_backend('qasm_simulator') compiled_circuit =transpile(circuit, simulator) job =simulator.run(compiled_circuit, shots=1000) #结果输出 result =job.result() counts =result.get_counts(circuit) print("\\nTotal count for 00 and 11 are:",counts) plot_histogram(counts)
上述代码在模拟器Qasm Simulator上的运行结果如下。
① 显示输出图1所示的量子线路图。
■ 图1量子线路输出
② 显示文本方式的执行结果,量子线路重复执行1000次,测得'00'的次数为484,测得'11'的次数为516。
js Total count for 00 and 11 are: {'00': 484, '11': 516}
③ 显示图2所示的统计结果的直方图,测量到'00'和'11'的概率分别为0.484和0.516,标志着已经成功制备出Bell态。
■ 图2 测量结果的直方图
在较早版本的Qiskit中,不需要对执行量子线路进行编译,指定后端之后用execute()执行量子线路即可。当前的Qiskit版本仍支持这种老的代码框架,此柜架下的代码如下。
#CH6-2.ipynb:Qiskit量子程序代码框架(不编译量子线路的执行方式)#导入库函数from qiskit import(QuantumCircuit,execute,Aer)from qiskit.visualization import plot_histogram #创建量子线路 circuit =QuantumCircuit(2,2)circuit.h(0)circuit.cx(0,1)circuit.measure(\[0,1\],\[0,1\])circuit.draw(output='mpl')#模拟器运行 simulator =Aer.get_backend('qasm_simulator')job =execute(circuit,simulator,shots=1000)#结果输出 result =job.result()counts =result.get_counts(circuit)print("\\nTotal count for 00 and 11 are:",counts)plot_histogram(counts)
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者