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

举报
TiAmoZhang 发表于 2023/06/29 15:57:52 2023/06/29
【摘要】 创建并输出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所示的量子线路图。

image.png


■ 图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态。

image.png


■ 图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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。