关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

量子程序设计基础 | 量子程序编程实例

发布时间:2023-06-29 17:00:57


# 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)

/template/Home/leiyu/PC/Static