怎么理解量子比特模型,迁移到量子计算机开始编程

怎么理解量子比特模型,迁移到量子计算机开始编程

视频链接:

好的现在是2025年的3月最后一天,3月31号,今天我们讨论的话题是量子编程,也就是在量子计算机上,使用特定的语言进行软件开发。当然我们要讨论的,不是,量子编程的某一门语言的技术细节,而是考虑这样一个问题,就是从经典计算机,迁移到量子计算机,这样一个应用平台上以后,我们所需要注意的那些变化的地方,也就是经典比特这个模型,迁移到量子比特这种概率模型上以后,我们,编程的一些基本的逻辑和,方法或者说,潜意识应该是有怎么样的转变的,呃这是我们今天要讨论的问题.

1 基础概念

首先呢,我们看量子比特它的这个概念,以及它的一些性质,我们和量子比特相关的一些操作,呃量子比特呢,是量子计算机,量子计算当中的信息的基础对象,它特征就是,可以容纳所有可能状态的叠加,那每一个叠加,都是有效的量值为状态啊,也就是说,它可以同时对2N次方个值进行编码,这个n是量子比特的位数有位宽,我们看这个两比特的经典,这个两比特的经典比特,它可能取值是00|01|10|11,这四个取值中的任何一个,它都是可以取到的,但在同一时刻,它只能取其中的一个,我们要完整的表达它的话,我们需要这个4对,按两比特的量,经典比特来来进行表达,而对于量子比特而言,它可以同时叠加所有的取值,也就是说这两比特它既可能取00,也可能取01,也可能取10,还可能取11,呃,就在我们的测量发生以前,我们是无法确知,它到底是取了什么值的,我们只只能够知道,这两比特的取值啊,取不同的状态值的概率啊,通常情况下都是各占25%,而只有通过测量,才能够知道,这两个量子比特到底是什么值。

这上述过程就涉及到了两个操作概念,就是叠加和纠缠,我们分配了一个量子比特以后,将它设为初态,就类似于我们在经典计算机上,将一个变量设置为0值,然后使用h们hand这个操作以后,将量子比特进入到叠加态,这个时候他的取值就不确定了啊,通常就是0和一的取值各占50%,我们只有通过呃,h们的逆操作让他回到出台,这时候它的值是确定的,或者通过测量,将它的叠加态坍缩到经典比特状态,另外一个操作是纠缠啊,我们经常听到量量子量子纠缠,这个操作实际上就是把两个量子比特,让他们发生纠缠,进入纠缠态,嗯这个Q1的状态取决于Q0,在Q0上的任何变化都会传递到Q1.

2 应用举例

呃有了这样一个基础概念以后,我们就可以来看,在量子对量子比特而言的读写操作,是什么样的,经典模型当中,我们要去获取一个比特的值,我们需要发起读行为,而在量子模型当中,读意味着要测量量子比特的状态,呃这里是量子比特的这个数学描述,可以理解为阿尔法方,这个阿尔法或或者和,和这个Beta是取0或者一,这是概率的平方根,这个阿尔法方意味着取0的概率,β方意味着取一的概率,嗯阿尔法加别的等于一些,我们测量量子比特以后,嗯它有阿尔法方的概率返回0,有别的方概率返回一,这个也就是说,我们的读就意味着测量,测量,意味着按照量子比特这种概率分布,来返回测量结果,所以读之前,我们是不确定量子模型的状态的,读之后量子比特的状态就确定了,而且哎如果,这个行为发生重复的话,那他的这个返回的值的概率分布,和量子比特的状态描述,是逐渐接近的;

然后是写操作,写操作就和纠缠态有些关系了,经典模型,让我们对量子比特发起写,在量子模型当中呢,呃,就意味着要去测量量子比特的状态,如果它和我们写的值不一致,就反转他的,哇这里这不是相位啊,是反转他的值,比如说从0反转的e状态,e状态反转环绕零状态,那这种变化或者这种值的变化,状态变化,就会传递到与他纠缠的量子比特上,比如说我们将呃,这个Q0和Q1这两个纠缠,纠缠的量子中的一个Q0,呃改变了Q0的状态,那么Q1的状态也会随即发生改变.

2.1 量子加密通信

那这些特性到底有什么用呢,我们为什么要使用量子计算机,来进行编程,这样或者说它有什么好处呢。

呃通常有这样一些,比如说加密通信,我们通常说量子量子,这个量子密钥,你可以保证,我们的通信是不可被窃听的,或者即使窃听发生了,我们也能够及时的感知到,这种窃听行为,这在此前是不可想象的,但到底这个过程是怎么样的呢,就是基本的原理,就是此前刚才我们说的,测量对量子比特的影响,比较经典的量子啊,这个模型当中,我们发起了读以后,在量子模型的下,就是要测量量子比特的状态,这一轮呢,量子比特状态是不确定的,它是一个叠加态,来测量以后返回的那个值是确定的,那这意味着中间发生变化,从不确定状态进入到了确定状态,也是测量后,这个量子比特的状态唯一确定了,也就是意味着叠加态坍缩了,或者说测量会破坏量子比特的叠加态,

下图左侧展示了收发信息和感知窃听的过程,那发送者将一个量子比特,呃进入叠加态以后,传递给接收者,接收者再通过这个h逆操作,呃得到Q0的发送者发送过来的,发送之前的他要发送那个信息,那一比特对应的状态,而如果这个中间有一个窃听者,偷偷地测量了这个发送的量子比特,那么它就会导致叠加在坍缩,而这个坍缩以后的信息,又又是没有经过这个标准的逆操作的,那么它就无法恢复原始信息,而这个窃听发生了以后呢,我们在接收方拿到了量子比特,由于它是坍缩以后的量子比特,我们再通过逆操作,也无法恢复这个信息,如果我们在信息当中,隐藏那么一个标记,我们如果无法正常的恢复这个标记,那么就认为这个过程中,可能发生了窃听,而对窃听者而言他,即使知道,要知道这是一个叠加态的量子,呃他知道要进行逆操作,但对于一长串的这个量子比特而言,他不知道哪些量子比特进入了叠加态,那么他也不能够正确的获取信息,所以一方面他无法获取信息,另一方面他有了这个窃听的动作以后,我们就能够知道呃,他做了这件事情,呃就是有双重保险,保证我们的信息不会被窃听,

2.2 量子加速

另外一方面就是量子计算的加速功能,比如说它可以对我们的搜索加速,甚至可以做到,指无序数据的无遍历搜索,就不需要看所有的数据,都能够找出来,其中我们要符合条件的目标,比如说量子计算当中的Grover算法,它对于无序数据的搜索,时间复杂度低至了O(根号n),在经典计算机的情况下,对于无序数据,至少最优的情况,当然是第一个目标就找到了,是O(1) 当然那是最理想的情况下,但一般情况下,都是需要把整个数据集进行遍历的,也就是时间复杂度应该是o n,而使用Grover算法,量子计算实现的grover算法呢,它的时间复杂度可以低到o根号n,也就是意味着不需要逐个的去看,不需要把所有数据看一遍,都能够找到目标,那这个过程到底怎么样呢,就比如说像下面这样,在,N等于2的n次方个无序数据当中,搜索目标,我们需要准备一个n位的量子比特,嗯然后让他们进入叠加态,使用Orcale操作,将所有的复调件的量子态进行反向,然后呢再进行操作,放大这个概率的放大,也就是做这么一个呃非0状,它的这个-1相移,那这个过程进行多次迭代啊,这个过程,这个这这一组操作实际上就是在扩散,就就要放大,目的就是放大目标状态的概率幅,然后减小非目标状态的概率幅,然后这个多次迭代以后呢,那个,更可能是目标的那个东西,他的概率就会相当突出,鹤立鸡群,然后我们只需度量,找概率最大的那个目标,那个那个那个对象,然后再看他是不是目标,如果不是的话,我们就重新来,然后直到找出符合我们条件的,确定是目标的那个,当然这个过程当中,没有确定性,我单看那个表述都不严谨了,就是我们只是把那个,那某某一个编码,我们最终找出来那个东西,它只是说非常有可能是目标,但是我们永远不能说,不能找到那个确定式目标,所以,我们需要对这个迭代的结果进行度量,然后再去比对它是不是目标。

嗯,这这个,这个就和我们经典的状态也不一样了,其实所有东西都是不确定的,我们只是通过这个概率来进行,检索就有点像我们再用眼睛,寻找这个符合条件目标一样,就像计算机视觉当中来进行图片,其中的目标的分类,我们最后生成的结果,一定是一组概率值,我们只是找认为概率最大的那个,是我们要找目标,那这个过程呢,实际上就不需要遍历集合了然,后,根据一定的特征来进行目标的发现,Grover的迭代过程,就类似于,增强目标和其他元素的对比度,一眼就能够看到。

3 量子编程语言

嗯说那么多,我们还没有看这个量子编程语言,到底是什么样的,以这个q#为例,这是微软推出的,呃一个量子编程语言,它的程序是像下面这样的,这个程序呢,是将两个量子比特,置为叠加态和纠缠态,呃这个和我们一般的编程语言,没有太大差异,因为呃,高级语言就是对机器进行抽象,这里就对量子计算机进行抽象,我们做的也是一些,函数的调用,其中包含了一些量子计算的特定操作,呃我们只要有了相应的概念,就可以去使用它。

这里我们逐行说一说,这是分配两个量子比特,就有点像为变量分配空间,然后呢是将Q1,呃进入叠加态,然后呢这里,将Q1和Q2这两个量子比特进行纠缠,让Q2的值取决于Q1,这个Domber信,这是一个方法,它可以展示嗯,量子计算机的状态,还包括量子的状态,这个方便我们进行调试,呃这个不会测量,它只会展示这个量子可能状态,比如说这里展示出量子,这个量子比特的取值可能是00,可能是11,各站的这个概率都是50%,嗯这个呈预言的结果就是,然后将Q1 Q2的状态进行测量,测量以后得到是11,这里呢就奇怪,这个Q1 Q2两个比特,为什么不是四种结果呢,这个这里就很关键,就是只让Q1进行了,进入了叠加态,那么只有Q1,他的状态是零一不确定的,那么这里就只有Q1是01变的,而Q2本身是一个初态的,它没有进入叠加的状态,然后呢它又和Q1进行了纠缠,那么它的值就取决于Q1,所以Q0 Q2值一直和Q1保持一样,所以它们的取值要么是00,要么是11,这里已多次运行,也可以看到了,这个测量结果不是00就是11,所以测量会导致,导致这个坍缩传递到纠缠量子比特,测量了两个纠缠量子比特的状态,他不是00呢就是11。

4 总结

所以这个量子编程的最大的不同,就是基础的模型发生的变化,由量子比特的这种呃状态的叠加性,然后量子比特之间的这种纠缠,以及我们可以通过这种概率的放大,来进行目标的查找,都使得量子编程,和经典的编程有所不同,嗯但对于软件开发人员而言,了解了这些基本的概念以后,就仍然可以以先前的,那些软件开发的方式,进行开发,因为软件本身也是对机器进行抽象,了解原理,就是帮助我们更好地去寻找,解决特定问题的实现方法,嗯就这么多,拜拜。

相关推荐
黑客思维者5 小时前
XGW-9000系列高端新能源电站边缘网关硬件架构设计
网络·架构·硬件架构·嵌入式·新能源·计算机硬件·电站
明明真系叻6 小时前
2025.12.13 论文阅读
量子计算
神圣的大喵17 小时前
平台无关的嵌入式通用按键管理器
c语言·单片机·嵌入式硬件·嵌入式·按键库
Sui_Network20 小时前
备受期待的 POP 射击游戏 XOCIETY 正式在 Epic Games Store 开启体验
人工智能·游戏·rpc·区块链·量子计算·graphql
网易独家音乐人Mike Zhou21 小时前
【嵌入式模块芯片开发】LP87524电源PMIC芯片配置流程,给雷达供电的延时上电时序及API函数
c语言·stm32·单片机·51单片机·嵌入式·电源·毫米波雷达
Nerd Nirvana1 天前
WSL——Windows Subsystem for Linux流程一览
linux·运维·服务器·windows·嵌入式·wsl·wsl2
rechol1 天前
mcu启动流程
stm32·单片机·mcu·嵌入式
华东设计之美1 天前
muti-Agent+RAG+KnowledgeGraph构建智能问诊系统的可行性分析
人工智能·软件开发·rag·大模型应用·增强检索生成
Logic1011 天前
一份系统化《Python爬虫教程》学习笔记:Python爬虫63个核心案例精讲(含反爬策略与源码剖析)
经验分享·爬虫·python·学习笔记·编程·软件开发
测试人社区-小明1 天前
AI在金融软件测试中的实践
人工智能·测试工具·金融·pycharm·机器人·github·量子计算