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

简介: 创建并输出Bell态观测量子线路。

image.png


# 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所示的量子线路图。

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)
目录
相关文章
|
8月前
|
存储 编译器 C++
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(一)
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
95 2
|
8月前
|
C++
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用(二)
【软件设计师备考 专题 】设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
82 2
西门子S7-1200编程实例,移位和循环移位指令如何使用?
西门子S7-1200的移位指令包括左移位指令和右移位指令,循环移位指令包括循环左移位指令和循环右移位指令。
西门子S7-1200编程实例,移位和循环移位指令如何使用?
|
8月前
|
Serverless 程序员 C语言
【C语言程序设计】函数程序设计
【C语言程序设计】函数程序设计
136 0
抽丝剥茧C语言(中阶)函数栈帧的创建与销毁——图解(下)
抽丝剥茧C语言(中阶)函数栈帧的创建与销毁——图解
|
编译器 C语言
抽丝剥茧C语言(中阶)函数栈帧的创建与销毁——图解(上)
抽丝剥茧C语言(中阶)函数栈帧的创建与销毁——图解
|
C语言 Perl
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说西门子S7-1200有哪几种编程方法,给大家简单介绍一下什么是线性化编程、模块化编程和结构化编程。
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
|
存储 计算机视觉
西门子S7-1200编程实例,计数器如何使用?
计数器用来累计脉冲的个数。在西门子S7-1200 PLC中有三种类型的计数器:加减计数器CTUD、加计数器CTU、减计数器CTD。每个计数器都使用存储块中存储的结构来保存计数器数据。在编辑器中放置计数器指令时,分配相应的数据块即背景数据块。计数值的数值范围取决于所选的数据类型。
西门子S7-1200编程实例,计数器如何使用?
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
199 0
|
机器学习/深度学习 Java
Java面向对象程序设计综合练习3(程序填空题)
Java面向对象程序设计综合练习3(程序填空题)
157 0
Java面向对象程序设计综合练习3(程序填空题)

热门文章

最新文章

下一篇
开通oss服务