教程:Python量⼦计算⼊门
量⼦计算机可能听起来有点神秘⽽且远在未来,但实际上,现在可以在云端访问它们或通过仿真器为每个⼈编写量⼦代码。在本教程中,我们将介绍如何编写⼀个简单的量⼦计算机程序来产⽣随机数。
这是⽤Python进⾏量⼦计算系列教程的第⼀部分,并介绍了量⼦编程的基本原理。
DataEspresso量⼦计算系列教程的概述。
● 第⼀部分:通过产⽣随机数开始量⼦计算(Python)
● 第⼆部分:使⽤量⼦隐形传态给鲍伯发送消息(Python)
● 第三部分:订阅我们的简讯以便通知您
excel vba教程完整版制表
这个⽰例可以在任何仿真器或量⼦计算机上完成。这篇博⽂,使⽤了免费且开源的Python库ProjectQ。
ProjectQ 可以在任何CPU上模拟量⼦计算机,或连接到IBM的量⼦计算机作为后端。
开始前,只需要通过pip或者按照安装指南安装ProjectQ
量⼦计算机编程
编写⼀个量⼦程序有点不同于以往我们创建经典程序,我们必须深⼊计算机抽象层次,使⽤逻辑门来操纵数据,与Alan Turing创造著名的图灵机器时使⽤的⼼态相同,它描述了经典机器对经典⽐特进⾏经典计算。最后,如果你的时间不是很紧张,并且⼜想快速的提⾼,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多⼈进步都很快,需要你不怕吃苦哦!⼤家可以去添加上看⼀下~
量⼦图灵机描述了⼀种可以在量⼦⽐特上进⾏量⼦计算的计算机,其中量⼦计算是指将量⼦逻辑门如Pauli-X、CNOT等应⽤于量⼦⽐特。
这意味着任何可能在经典计算机上写⼊的程序都可以在量⼦计算机上运⾏,反之亦然,但这并不意味着任何程序在量⼦计算机上都会更有效,事实上,⼀些程序在量⼦计算机将运⾏得更慢并且量⼦计算机将不得不与⼀台经典的计算机并⾏⼯作以处理经典计算机的计算不⾜,诸如矩阵乘法运算或寻破解密码学的主要因素。
⽤量⼦门创建⼀个随机⽣成器
创建(伪)随机数是计算机科学课程中教的第⼀件事。通常,它会导⼊⼀个称为"Random"之类的预先创建的库,然后调⽤合适的函数。
在量⼦计算中,我们还没有达到这样的抽象⽔平,但是使⽤量⼦逻辑门来创建随机数⼏乎同样容易。
量⼦门类似于我们从经典计算中知道的的逻辑门。例如:AND,OR,NAND,XOR等。
对于那些不熟悉这个概念的⼈来说,逻辑门是⽤于通过布尔函数操纵输⼊的⼀组输⼊和输出。
例如,如果我们给或门输⼊两个数字,其中⼀个或两个都是⼀,输出将是真,如果我们输⼊两个零,输出将是假。
上⾯的表显⽰了或门的真值表,其中A和B是输⼊,Q是输出。想象⼀下,只有当灯被点燃时,门才会打开,当两盏灯关闭时,门将保持关闭。
逻辑门可以⽤来计算任何操作,并且在量⼦计算中,我们可以使⽤称为Hadamard的逻辑门来创建随机数(1或0)。最后,如果你的时间不是很紧张,并且⼜想快速的提⾼,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多⼈进步都很快,需要你不怕吃苦哦!⼤家可以去添加上看⼀下~
Hadamard门取⼀个输⼊,并将输出映射为等于1或0的相等概率,即创建⼀个叠加,其中输⼊可以同时为1或0。
基态 |0⟩被映射为:
基态 |1⟩被映射为:
Hadamard门由Hadamard矩阵表⽰,表明⾏是相互正交的。
在上阅读关于Hadamard矩阵和其他量⼦逻辑门的更多信息
本质上,Hadamard门掷硬币,⽽硬币在空⽓中,这是⼀个叠加,在这个意义上,硬币可以是正⾯和背⾯,直到它落地,我们向下看它-⼈为的⽅式来衡量硬币的状态。
我们的量⼦随机⽣成器在⼏个简单的步骤中加上硬币模拟
1.创建⼀个新量⼦⽐特
从⼝袋⾥掏出⼀枚硬币
2.将Hadamard门应⽤于量⼦⽐特,将其叠加成等于0和1的相等概率。
python入门教程完整版百度网盘把硬币抛向空中,现在可以是正⾯,也可以是背⾯。
3.测量该量⼦⽐特
硬币终于落地了,看是它的正⾯还是背⾯。
count是什么函数⾸先,导⼊projectQ的Hadamard门和测量函数。我们在本教程中使⽤了projectQ,在其他库和系统中也可以遵循同样的⽅法,虽然代码语法会有所不同,但是理论是⼀样的。
激活函数
我们使⽤仿真器初始化后端,但是也可以使⽤如IBMs量⼦计算机。然后创建⼀个新的量⼦⽐特来应⽤计算。
我们现在有⼀个量⼦⽐特,它被初始化并准备叠加。记住这⾥硬币的⽐喻,在这⾥我们捡到⼀枚硬币,现在准备扔在空中。
然后我们将Hadamard门应⽤到量⼦⽐特,这是指我们把硬币抛向空中的步骤。
这样做的语法将在每个库和⼯具之间有所不同,但在ProjectQ中,它只按照以下⽅式完成。
黄页免费的网站未满18岁勿入
音乐网站
这⾥要注意的⼀件有趣的事情是,我们直接将门应⽤到量⼦⽐特,⽽不是创建⼀个副本。这是因为不同于经典⽐特,量⼦⽐特不能被物理学的基本定律所复制。
然⽽,它有可能将量⼦态从⼀个位置传送到另⼀个位置,但这是下⼀个教程的内容。
随着量⼦⽐特的叠加,我们现在可以测量它,这指的是步骤硬币落到桌⼦上并看是它的正⾯还是背⾯。在projectQ中,测量是⽤下⾯的命令完成的。
测量的量⼦⽐特现在可以打印出来 将返回0或1。
这⼀切都包含在⼀个完整的Python代码的⼀个for循环中,这表明我们投掷硬币的随机性。
来⾃随机⽣成器的⼀些输出。
这是对Python中创建⼀个带有量⼦门的随机⽣成器的简单介绍。请在下⾯的评论区中发表任何评论,
关注或问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。