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

简介: 创建并输出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)
目录
相关文章
|
10月前
|
数据采集 存储 缓存
PHP爬虫的使用与开发
本文深入探讨了PHP爬虫的使用与开发,涵盖基本原理、关键技术、开发实践及优化策略。从发送HTTP请求、解析HTML到数据存储,再到处理反爬机制,全面指导读者构建高效可靠的爬虫程序。
212 3
|
JSON Ubuntu Shell
WSL 2 的安装过程(以及介绍)(下)
WSL 2 的安装过程(以及介绍)
WSL 2 的安装过程(以及介绍)(下)
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
240 4
|
机器学习/深度学习 编解码 监控
MaxFrame初探:提升视频质量的基础原理与应用场景
【10月更文挑战第12天】在多媒体技术飞速发展的今天,视频质量成为了用户体验中不可或缺的一部分。无论是流媒体服务、在线教育平台还是视频会议系统,用户对于视频清晰度和流畅度的要求越来越高。MaxFrame是一种旨在提升视频质量的技术框架,它通过一系列先进的图像处理算法来优化视频内容。本文将深入探讨MaxFrame的基础原理,并通过代码示例展示其在不同场景下的应用。
188 0
|
11月前
|
存储 数据采集 物联网
物联网技术在物流领域的应用会遇到哪些挑战?
物联网技术在物流领域的应用会遇到哪些挑战?
588 60
|
10月前
|
机器学习/深度学习 并行计算 测试技术
每天五分钟深度学习:解决for循环效率慢的关键在于向量化
向量化是提升计算效率的重要技术,尤其是在处理大规模数据和进行复杂运算时。通过将for循环转换为向量或矩阵运算,向量化能够充分利用底层高效库和现代CPU的并行计算能力,从而大幅提高运算速度。在深度学习中,向量化是实现高效神经网络训练和预测的关键。
308 23
|
10月前
|
存储 关系型数据库 索引
什么是聚簇索引及其优缺点?
聚簇索引是InnoDB存储引擎中的一种数据存储方式,通过主键构建B+树,叶子节点存储整行数据。主键索引即为聚簇索引,若无主键则选择非空唯一索引或隐式创建主键。非聚簇索引(辅助索引)的叶子节点存储主键值,访问数据需两次查找。聚簇索引优势在于数据访问速度快,尤其适合主键的排序和范围查询;但插入和更新操作成本较高,建议使用自增ID作为主键。
261 6
|
10月前
|
人工智能 并行计算 开发者
【AI系统】从 CUDA 对 AI 芯片思考
本文从技术角度探讨英伟达生态,特别是CUDA与SIMT的关系及其对AI芯片DSA架构的影响。通过分析流水编排、SIMT前端、分支预测及交互方式,指出英伟达CUDA的成功在于其硬件设计与软件易用性的结合,为未来AI芯片的设计提供了宝贵的经验和启示。
255 5
|
11月前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
305 2
|
存储 网络协议 算法
UDP & TCP 超详解
本文详细介绍了UDP与TCP协议的相关知识。首先阐述了UDP协议结构,包括其报文格式、各字段含义及其CRC校验和机制。接着深入探讨了TCP协议,涵盖其协议结构、确认应答机制、超时重传策略、三次握手与四次挥手过程,以及滑动窗口、流量控制和拥塞控制等关键技术。最后分析了TCP在异常情况下的处理机制,如进程崩溃、主机关机、掉电和网线断开等情况。
423 6