量子程序设计基础 | 量子程序编程实例
【摘要】 创建并输出Bell态观测量子线路。
01、量子程序编程实例
【例1】编程实例: 创建并输出Bell态观测量子线路,在模拟器上执行1000次,以文本和直方图的形式给出运行结果。
解:
代码如下。
#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)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)