量子计算(8)pyqpanda编程3测量操作

news/2024/5/15 6:19:06/文章来源:https://blog.csdn.net/m0_69299019/article/details/129099702

        作为一名高产博主,小编我一天不写文章就浑身难受,这不,一闲下来就来给大家科普量子计算编程操作了。

        今天我们要来探讨“测量操作”,众所周知,薛定谔的猫是一种既死又活的状态,很多人认为,猫是死还是活,取决于最后那一次测量,这里的测量指的是打开那个含有氰化物、少量的镭以及那只可怜的猫所在房间的门,我们一看便知道。那么在微观世界中,我们如何测量这些量子的状态,是值得我们深思的一个问题。

一、量子测量

        量子测量是指通过外界对量子系统进行干扰来获取需要的信息,测量门使用的是蒙特卡洛方法的测量。也就是说,测量之后就会对原系统造成破坏,这也是量子系统一个让人头疼的地方。这就好比,小明同学成绩很优秀,需要通过考试测量出他有多么优秀,期末的时候进行期末考试,先考语文,再考数学。但是在语文考试结束之后,由于刚考完内心压力太大了,心态上发生了些许变化,这个时候再去考数学,不一定会考出他原有的水平。

1、测量

        在量子程序中我们需要对某个量子比特做测量操作,并不好直接测量,我们需要找一个靠谱并且熟悉的对象,对这个对象测量,这不,就被我们找到了,我们可以把测量结果存储到经典寄存器上,可以通过下面的方式获得一个测量对象:

measure = Measure(qubit, cbit);

        可以看到Measure接两个参数, 第一个是测量比特,第二个是经典寄存器。这也是为什么量子比特数一定要等于经典寄存器个数的原因,方便我们测量。

        如果想测量所有的量子比特并将其存储到对应的经典寄存器上, 可以如下操作:

measureprog = measure_all(qubits, cbits);

2、执行程序

directly_run的功能是运行量子程序并返回运行的结果, 我们举一个小例子:

prog = QProg()
prog << H(qubits[0])\<< CNOT(qubits[0], qubits[1])\<< CNOT(qubits[1], qubits[2])\<< CNOT(qubits[2], qubits[3])\<< Measure(qubits[0], cbits[0])result = directly_run(prog)

run_with_configuration()的功能是统计量子程序多次运行的测量结果, 同样举一个小例子:

prog = QProg()
prog << H(qubits[0])\<< H(qubits[0])\<< H(qubits[1])\<< H(qubits[2])\<< measure_all(qubits, cbits)result = run_with_configuration(prog, cbits, 1000)

二、概率测量

        概率测量是指获得目标量子比特的振幅,目标量子比特可以是一个量子比特也可以是多个量子比特的集合。 在pyqpanda中概率测量又称为PMeasure 。 概率测量和量子测量是完全不同的过程,Measure是执行了一次测量, 并返回一个确定的0/1结果,并且改变了量子态。

        

pyqpanda有三种概率测量方式,如下:

1、prob_run_list:获得目标量子比特的概率测量结果列表。

2、prob_run_tuple_list:获得目标量子比特的概率测量结果,为列表类型,其对应的下标为十进制。

3、prob_run_dict:获得目标量子比特的概率测量结果,为字典类型,其对应的下标为二进制。

这三个函数的使用方式是一样的,下面用一个例子让大家感受一下三者的区别:

from pyqpanda import *if __name__ == "__main__":qvm = CPUQVM()qvm.init_qvm()qubits = qvm.qAlloc_many(2)cbits = qvm.cAlloc_many(2)prog = QProg()prog << H(qubits[0])\<< CNOT(qubits[0], qubits[1])print("prob_run_dict: ")result1 = qvm.prob_run_dict(prog, qubits, -1)print(result1)print("prob_run_tuple_list: ")result2 = qvm.prob_run_tuple_list(prog, qubits, -1)print(result2)print("prob_run_list: ")result3 = qvm.prob_run_list(prog, qubits, -1)print(result3)

结果为:

        好的,本期的量子计算课程就到此为止了,感兴趣的小伙伴们可以在读完本篇文章后,自行测量,玩一玩量子计算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_268569.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java代码优化|提高代码质量的一些小技巧

1.需要 Map 的主键和取值时&#xff0c;应该迭代 entrySet()当循环中只需要 Map 的主键时&#xff0c;迭代 keySet() 是正确的。但是&#xff0c;当需要主键和取值时&#xff0c;迭代 entrySet() 才是更高效的做法&#xff0c;比先迭代 keySet() 后再去 get 取值性能更佳。正例…

Git设置SSH Key

一、git 配置 &#xff08;1&#xff09;打开 git 命令窗口 &#xff08;2&#xff09;配置用户名&#xff08;填自己的姓名&#xff09; git config --global user.name “xinyu.xia” &#xff08;3&#xff09;配置用户邮箱&#xff08;填自己的邮箱&#xff0…

Python+Yolov8目标识别特征检测

Yolov8目标识别特征检测如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<Yolov8目标识别特征检测>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推荐…

Easy Deep Learning——PyTorch中的自动微分

目录 什么是深度学习&#xff1f;它的实现原理是怎么样的呢&#xff1f; 什么是梯度下降&#xff1f;梯度下降是怎么计算出最优解的&#xff1f; 什么是导数&#xff1f;求导对于深度学习来说有何意义&#xff1f; PyTorch 自动微分&#xff08;自动求导&#xff09; 为什么…

小孩用什么样的台灯比较好?2023眼科医生青睐的儿童台灯推荐

小孩子属于眼睛比较脆弱的人群&#xff0c;所以选购护眼台灯时&#xff0c;选光线温和的比较好&#xff0c;而且调光、显色效果、色温、防蓝光等方面也要出色&#xff0c;否则容易导致孩子近视。 1、调光。台灯首先是照度高&#xff0c;国AA级&#xff0b;大功率发光&#xff0…

C++学习笔记(以供复习查阅)

视频链接 代码讲义 提取密码: 62bb 文章目录1、C基础1.1 C初识&#xff08;1&#xff09; 第一个C程序&#xff08;2&#xff09;注释&#xff08;3&#xff09;变量&#xff08;4&#xff09;常量&#xff08;5&#xff09;关键字&#xff08;6&#xff09;标识符命名规则1.2 …

前端jQuery ajax请求,后端node.js使用cors跨域

前言 跨域&#xff0c;一句话介绍&#xff1a; 你要请求的URL地址与当前的URL地址&#xff0c;协议不同、域名不同、端口不同时&#xff0c;就是跨域。 步入正题 前端&#xff0c;jQuery ajax请求 $.ajax({async: false,method: post,//URl和端口与后台匹配好&#xff0c;当…

HTTPS加密解析

日升时奋斗&#xff0c;日落时自省 目录 1、加密解释 2、对称加密 3、非对称加密 4、证书 HTTPS&#xff08;HyperText Transfer Protocol over Secure Socket Layer&#xff09;也是一个应用层协议&#xff0c;是在HTTP协议的基础上引入了一个加密层 HTTP协议内容都是按…

Docker学习(二十一)构建 java 项目基础镜像

目录1.下载 JDK 包2.编写 Dockerfile3.构建镜像4.创建容器测试1.下载 JDK 包 JDK各版本官网下载地址&#xff1a; https://www.oracle.com/java/technologies/downloads/archive/#JavaSE 这里我们以 JDK 8u351 为例&#xff0c;点击 Java SE (8U211 and later)。 点击下载 jd…

自动化测试实战篇(9),jmeter常用断言方法,一文搞懂9种测试字段与JSON断言

Jmeter常用的断言主要有&#xff0c;JSON断言和响应断言这两种方式。 断言主要就是帮助帮助人工进行快速接口信息验证避免繁杂的重复的人工去验证数据 第一种响应断言Apply to&#xff1a;表示应用范围测试字段&#xff1a;针对响应数据进行不同的匹配响应文本响应代码响应信息…

WPF 自定义DataGrid控件样式模板5个

WPF 自定义DataGrid控件样式样式一&#xff1a;样式代码&#xff1a;<!--DataGrid样式--><Style TargetType"DataGrid"><!--网格线颜色--><Setter Property"CanUserResizeColumns" Value"false"/><Setter Property&q…

day48第九章动态规划(二刷)

今日任务 198.打家劫舍213.打家劫舍II337.打家劫舍III 今天就是打家劫舍的一天&#xff0c;这个系列不算难&#xff0c;大家可以一口气拿下。 198.打家劫舍 题目链接&#xff1a; https://leetcode.cn/problems/house-robber/description/ 题目描述&#xff1a; 你是一个…

[ Azure ] Episode 03 | 描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx

正常情况如果你不是会计&#xff0c;或者对钱相关的数字比较敏感的财务&#xff0c;本文的一些东西你不会接触的&#xff0c;但是最为云架构或者云运营&#xff0c;你可能会遇到如何采购亦或者估算的我成本和运营成本等等&#xff0c;所以本文的一些知识点就需要进行一定的了解…

Fikker安装SSL证书

Fikker 基于nginx&#xff0c; 订单详细中下载nginx格式&#xff0c; 解压后包含 yourdomain.com.crt 和 yourdomain.com.key 2个文件&#xff0c;将内容粘贴到输入框中.1、说明&#xff1a;在【主机管理】中设置网站域名对应的SSL 数字证书&#xff08;CRT/CER&#xff09;和证…

MySQL 02 :三层结构、备份删除数据库

MySQL 02 &#xff1a;数据库三层结构-破除MySQL神秘 请添加图片描述 通过golang操作MySQL 创建删除数据库 备份恢复数据库 第一次需要配置环境&#xff0c;否则会报错 报错&#xff1a;mysqldump: Got error: 1045: Access denied for user ‘root’‘localhost’ (using …

云端IDE:TitanIDE保障代码安全

原文作者&#xff1a;行云创新技术总监 邓冰寒 引言 2019年&#xff0c;哔哩哔哩的后台源代码被上传至GitHub&#xff0c;其中包含部分用户名及密码信息&#xff0c;受该事件影响&#xff0c;B站盘前股价跌超4%。 2022年&#xff0c;丰田汽车公司远程车载信息通信服务应用程序…

训练自己的GPT2-Chinese模型

文章目录效果抢先看准备工作环境搭建创建虚拟环境训练&预测项目结构模型预测续写训练模型遇到的问题及解决办法显存不足生成的内容一样文末效果抢先看 准备工作 从GitHub上拉去项目到本地&#xff0c;准备已训练好的模型百度网盘&#xff1a;提取码【9dvu】。 gpt2对联训…

java多线程(二四)java多线程基础总结

一、进程与线程 1.进程 进程是操作系统结构的基础&#xff1b;是一次程序的执行&#xff1b;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中&#xff0c;几乎所有运行中的任务对应一条进程&#xff08;Process&#xff09;。一个程序进入内存运行&#xff…

Kalman Filter in SLAM (6) ——Error-state Kalman Filter (EsKF, 误差状态卡尔曼滤波)

文章目录0.前言1. IMU的误差状态空间方程2. 误差状态观测方程3. 误差状态卡尔曼滤波4. 误差状态卡尔曼滤波方程细节问题0.前言 这里先说一句&#xff1a;什么误差状态卡尔曼&#xff1f;完全就是在扯淡&#xff01; 回想上面我们推导的IMU的误差状态空间方程&#xff0c;其实…

synchronized轻量级锁优化

synchronized优化轻量级锁 使用场景 如果一个对象虽然有多个线程访问&#xff0c;但多线程访问时间是错开的&#xff0c;也就是没有竞争&#xff0c;那么可以使用轻量级锁优化&#xff1b; 原理 1、每个线程的栈帧中有锁记录 包括&#xff1a;记录锁对象的地址Object refer…