当前位置: 首页 > news >正文

Bernstein-Vazirani算法

B-V算法

(1) 问题描述

  给定布尔函数f:{0,1}n→0,1f:{\left\{ {0,1} \right\}^n} \to{0,1}f:{0,1}n0,1, 函数fff的值是由输入比特串xxx和确定的比特串sss做模2意义下的内积:f(x)=x⋅s(mod2),f\left( x \right) = x \cdot s\left( {\bmod 2} \right),f(x)=xs(mod2),其中x⋅s=∑i(xi⊕si)x \cdot s = \sum\limits_i {\left( {{x_i} \oplus {s_i}} \right)} xs=i(xisi)
前提:可以调用访问函数fff的黑盒
问题:计算出比特串sss

经典意义下
  依次输入比特串xxx:
00...0000...0100...10...01...0010...00\begin{array}{l} 00...00\\ 00...01\\ 00...10\\ ...\\ 01...00\\ 10...00 \end{array}00...0000...0100...10...01...0010...00
对于第iii次输入:
000100...00→x⋅s(mod2)=si000100...00 \to x \cdot s\left( {\bmod 2} \right) = {s_i}000100...00xs(mod2)=si
重复该流程nnn次,即可确定比特串sss,上述方法的查询复杂度为O(n)O\left( n \right)O(n)

(2) 量子算法核心思路:

基础知识:H⊗n∣s⟩=12n2∑x(−1)s⋅x∣x⟩H^{\otimes n}|s\rangle=\frac{1}{2^{\frac{n}{2}}} \sum_{x}(-1)^{s \cdot x}|x\rangleHns=22n1x(1)sxx

Step1:制备初始量子比特∣Φ0⟩=∣0⟩⊗n\left| {{\Phi _0}} \right\rangle ={\left| 0 \right\rangle ^{ \otimes n}}Φ0=0n
Step2:作用H⊗n{H^{ \otimes n}}Hn,得到量子态∣Φ0⟩=12n2∑x∣x⟩\left| {{\Phi _0}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } Φ0=22n1xx
Step3:作用量子黑盒Of{O_f}OfOf:∣x⟩→(−1)x⋅s∣x⟩{O_f}:\left| x \right\rangle \to {\left( { - 1} \right)^{x \cdot s}}\left| x \right\rangleOf:x(1)xsx,此时系统状态为∣Φ1⟩=12n2∑x(−1)s⋅x∣x⟩\left| {{\Phi _1}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {{{\left( { - 1} \right)}^{s \cdot x}}|x\rangle }Φ1=22n1x(1)sxx
Step4:作用H⊗n{H^{ \otimes n}}Hn,系统状态变为∣s⟩|s\rangles
此时测量量子系统即可得到比特串sss,该算法的查询复杂为O(1)O(1)O(1)

备注:上述量子黑盒OfO_fOf的实现方法与Deutsh算法相似,具体方法如下

在这里插入图片描述

(1) 制备量子态∣Ψ0⟩=∣0⟩n∣1⟩\left| {{\Psi _0}} \right\rangle = {\left| 0 \right\rangle ^n}\left| 1 \right\rangleΨ0=0n1
(2) 作用H⊗n{H^{ \otimes n}}Hn,量子系统变为∣Ψ1⟩=12n2∑x∣x⟩∣−⟩\left| {{\Psi _1}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } \left| - \right\rangleΨ1=22n1xx
(3) 作用Uf:∣x⟩∣y⟩→∣x⟩∣y⊕f(x)⟩U_f:\left|x\right\rangle\left|y\right\rangle \to\left|x\right\rangle\left|y\oplus f\left( x \right)\right\rangleUfxyxyf(x),量子系统演变为∣Ψ2⟩=12n2∑x∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)\left| {{\Psi _2}} \right\rangle = \frac{1}{{{2^{\frac{n}{2}}}}}\sum\limits_x {|x\rangle } \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right)Ψ2=22n1xx2211(0f(x)1f(x))
f(x)=0{f\left( x \right)}=0f(x)=0时,∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)=∣x⟩1212(∣0⟩−∣1⟩)=∣x⟩∣−⟩\left|x\right\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right) = |x\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| 0 \right\rangle - \left| 1 \right\rangle } \right) = |x\rangle \left| - \right\ranglex2211(0f(x)1f(x))=x2211(01)=x
f(x)=1{f\left( x \right)}=1f(x)=1时,∣x⟩1212(∣0⊕f(x)⟩−∣1⊕f(x)⟩)=∣x⟩1212(∣0⟩−∣1⟩)=−∣x⟩∣−⟩\left|x\right\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| {0 \oplus f\left( x \right)} \right\rangle - \left| {1 \oplus f\left( x \right)} \right\rangle } \right) = |x\rangle \frac{1}{{{2^{\frac{1}{2}}}}}\left( {\left| 0 \right\rangle - \left| 1 \right\rangle } \right) = -|x\rangle \left| - \right\ranglex2211(0f(x)1f(x))=x2211(01)=x
不难发现UfU_fUf的作用为:∣x⟩∣−⟩→(−1)f(x)∣x⟩∣−⟩=(−1)s⋅x∣x⟩∣−⟩|x\rangle \left| - \right\rangle \to {\left( { - 1} \right)^{f\left( x \right)}}|x\rangle \left| - \right\rangle={\left( { - 1} \right)^{s \cdot x}}|x\rangle \left| - \right\ranglex(1)f(x)x=(1)sxx
舍弃掉最后一个量子比特(辅助比特)∣−⟩\left| - \right\rangle,即实现了Step3中的黑盒OfO_fOf

参考资料
[1] Bernstein-Vazirani Algorithm 学习笔记
[2] 量子计算【算法篇】第7章 Deutsch-Josza算法及实现
(3) 由 Fourier Sampling 到 Deutsch-Jozsa Algorithm & Bernstein-Vazirani Algorithm

相关文章:

Bernstein-Vazirani算法

B-V算法 (1) 问题描述 给定布尔函数f:{0,1}n→0,1f:{\left\{ {0,1} \right\}^n} \to{0,1}f:{0,1}n→0,1, 函数fff的值是由输入比特串xxx和确定的比特串sss做模2意义下的内积:f(x)x⋅s(mod2),f\left( x \right) x \cdot s\left( {\bmod 2} \right),f(x)x⋅s(mod2),…...

华为OD机试 - 相对开音节 | 备考思路,刷题要点,答疑 【新解法】

最近更新的博客 【新解法】华为OD机试 - 关联子串 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 停车场最大距离 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 任务调度 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试…...

MyBatis

一、MyBatis环境搭建创建工程启动idea开发工具&#xff0c;选择工具栏中的“file”--“new”--“project”选项弹出“new project”对话框&#xff0c;编辑项目名称 选择maven项目&#xff0c;项目路径 单击 create 创建即可。引入相关依赖<dependencies><dependency&…...

良好的作息表

今天给大家带来“传说中”的“世界上最健康的作息时间表”(仅供参考)&#xff0c;随时提醒自己吧&#xff0c;毕竟身体可是自己的哦。 7:30 起床&#xff1a;英国威斯敏斯特大学的研究人员发现&#xff0c;那些在早上5:22-7:21分起床的人&#xff0c;其血液中有一种能引起心脏病…...

【郭东白架构课 模块一:生存法则】01|模块导学:是什么在影响架构活动的成败?

你好&#xff0c;我是郭东白。这节课是我们模块一的导入部分&#xff0c;我会先来介绍模块的主要内容&#xff0c;以及为什么我要讲生存法则这个话题。 一名软件架构师要为相对复杂的业务制定&#xff0c;并且引导实施一个结构化的软件方案。这个发现最终方案和推动实施的过程&…...

webshell免杀之函数与变量玩法

webshell免杀之函数与变量玩法 前言 前文列举了一些用符号免杀的例子&#xff0c;此篇文章就以函数和变量来尝试下免杀。 本文以PHP为例&#xff0c;用PHP中函数和变量及语法特性&#xff0c;在不隐藏函数关键字情况下进行免杀。 动态函数 PHP中支持一个功能叫 variable fu…...

【新解法】华为OD机试 - 去重求和 | 备考思路,刷题要点,答疑,od Base 提供

华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 去重求和 | 备考思路,刷题要点,答疑,od Base 提供 给定一个数组,编写一个函数, 计算他的最大N个数和最小N个数的和, 需要对数组进行去重。 输入 第一行输入M,M表示数组大小 第二行输入M个数,表…...

MySQL 服务正在启动.MySQL 服务无法启动.服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。总结较全 (已解决)

输入以下命令启动mysql&#xff1a; net start mysql出现以下错误提示&#xff1a; MySQL 服务正在启动 .MySQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。 出现这个问题的话&#xff0c;一般有几个情况&#xff1a; 一、MySQL安装文…...

【数据结构与算法】数组2:双指针法 二分法(螺旋矩阵)

文章目录今日任务1.Leetcode977&#xff1a;有序数列的平方&#xff08;1&#xff09;题目&#xff08;2&#xff09;思路&#xff08;3&#xff09;暴力排序&#xff08;4&#xff09;双指针法2.Leetcode209&#xff1a;长度最小的子数组&#xff08;1&#xff09;题目&#x…...

librtmp优化

librtmp是一个RTMP的开源库&#xff0c;很多地方用它来做推流、拉流。它是RTMPDump开源软件里的一部分&#xff0c;librtmp的下载地址&#xff1a;RTMPDump&#xff0c;目前最新版是V2.3。本文重点介绍librtmp优化。 1、调整网络输出块大小。 RTMP_Connect0函数中LibRTMP是关…...

数据结构与算法(二):线性表

上一篇《数据结构与算法&#xff08;一&#xff09;&#xff1a;概述》中介绍了数据结构的一些基本概念&#xff0c;并分别举例说明了算法的时间复杂度和空间复杂度的求解方法。这一篇主要介绍线性表。 一、基本概念 线性表是具有零个或多个数据元素的有限序列。线性表中数据…...

IOS安全区域适配

对于 iPhone 8 和以往的 iPhone&#xff0c;由于屏幕规规整整的矩形&#xff0c;安全区就是整块屏幕。但自从苹果手机 iphoneX 发布之后&#xff0c;前端人员在开发移动端Web页面时&#xff0c;得多注意一个对 IOS 所谓安全区域范围的适配。这其实说白了就是 iphoneX 之后的苹果…...

在Java 中 利用Milo通信库,实现OPCUA客户端,并生成证书

程序结构&#xff1a; 配置文件resources&#xff1a; opcua.properties 西门子PLC端口号为4840&#xff0c;kepserver为49320 #opcua服务端配置参数 #opcua.server.endpoint.urlopc.tcp://192.168.2.102:49320 opcua.server.endpoint.urlopc.tcp://192.168.2.11:4840 opcu…...

三分钟学会用Vim

Vim知识点 目录Vim知识点一&#xff1a;什么是vim二&#xff1a;vim常用的三种模式三&#xff1a;vim的基本操作一&#xff1a;什么是vim vim最小集 vim是一款多模式的编辑器—各种模式—每种模式的用法有差别—每种模式之间可以互相切换 但是我们最常用的就是3~5个模式 vi…...

编译链接实战(8)认识elf文件格式

&#x1f380; 关于博主&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f947; 作者简介&#xff1a; 热衷于知识探索和分享的技术博主。 &#x1f482; csdn主页:&#xff1a;【奇妙之二进制】 ✍️ 微信公众号&#xff1a;【Linux …...

新手小白如何入门黑客技术?

你是否对黑客技术感兴趣呢&#xff1f;感觉成为黑客是一件很酷的事。那么作为新手小白&#xff0c;我们该如何入门黑客技术&#xff0c;黑客技术又是学什么呢&#xff1f; 其实不管你想在哪个新的领域里有所收获&#xff0c;你需要考虑以下几个问题&#xff1a; 首先&#xff…...

【java】Spring Boot --深入SpringBoot注解原理及使用

步骤一 首先&#xff0c;先看SpringBoot的主配置类&#xff1a; SpringBootApplication public class StartEurekaApplication {public static void main(String[] args){SpringApplication.run(StartEurekaApplication.class, args);} }步骤二 点进SpringBootApplication来…...

一文掌握如何对项目进行诊断?【步骤方法和工具】

作为项目经理和PMO&#xff0c;面对错综复杂的项目&#xff0c;需要对组织的项目运作情况进行精确的分析和诊断&#xff0c;找出组织项目管理中和项目运行中存在的问题和潜在隐患&#xff0c;分析其原因&#xff0c;预防风险&#xff0c;并且形成科学合理的决策建议和解决方案&…...

系统分析师真题2020试卷相关概念二

结构化设计相关内容: 结构化设计是一种面向数据流的系统设计方法,它以数据流图和数据字典等文档为基础。数据流图从数据传递和加工的角度,以图形化方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模…...

<<Java开发环境配置>>5-MySQL安装教程(绿色版)

一.MySQL绿色版安装: 1.直接解压下载的ZIP文件到对应的目录下(切记安装目录不要有中文); 如图:我的安装目录:D:Program Files 2.创建配置文件: 在MySQL安装目录下&#xff0c;创建一个my.ini配置文件&#xff0c;然后在里面添加以下内容&#xff08;别忘了MySQL安装目录要改成…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...