没有合适的资源?快使用搜索试试~ 我知道了~
一文教你“量子编程”入门式1
需积分: 0 0 下载量 195 浏览量
2022-08-03
14:36:54
上传
评论
收藏 1.99MB PDF 举报
温馨提示
试读
11页
一文教你“量子编程”入门式1
资源详情
资源评论
资源推荐
在开始之前,请注意,本文是为希望了解量子编程的完整技术细节的人们准备的。本文建立在量子
比特(qubit),量子门(quantum gates)和量子电路图(quantum circuit diagrams)的数学
基础之上。(本文不涉及解释量子算法。)
由于我们将涉及到有关量子编程的基础数学,因此你需要了解向量、矩阵、线性组合和复数的概
念。
量子计算机
让我们首先了解一下什么是量子计算机,其与传统的计算机有什么区别?
量子计算机是使用量子力学进行运算的机器。
那么,这与其他计算机有何不同?我们知道,计算机最基本的形式是用来执行运算,有许多类型的
计算机,在计算机时代的早期,我们实际上是有过机械计算机的——查尔斯·巴贝奇在1837年设计
了一款机械计算机来执行基本的计算过程。现今,我们的计算机基于数字电子设备,利用位和逻辑
门来进行运算。与之不同的是,量子计算机使用量子力学来进行运算,利用量子比特和量子门,而
不是位和逻辑门。
那么,什么是量子比特和量子门呢?物理上来说,它们可以用许多方式实现——Google、IBM、
微软、Rigetti等公司都有自己的方案。我们现阶段无需关心量子比特和量子门的物理性质,因为
初次学习量子程序并不需要了解这些。
量子编程
在开始编程之前,强烈建议你摒弃大脑中有关编程的一切固有概念,不要想着声明设置变量,循环
语句,定义函数等,任何先入之见都没有用。量子编程不是简单地将现在的程序运行更快的一种方
法,其与现有的程序在根本上就是完全不同的。(按语:“量子编程”用是类似HDL的硬件描述语
言,而不是如C之类的面向过程式语言。两者无法类比。)
了解量子比特
一个量子比特是具有单位长度的两份复数的矢量。为什么使用量子比特?量子比特的含义是什么?
我们不妨把它和传统的位(即比特)作比较。
对于初学者来言,“一个位”是一个非0即1的数。而“一个量子比特”是一个非0即1的概率分
布:若有两个相同的量子比特,分别测量,可以测到不同的值。仔细想一想,就可以发现,基于量
子比特的量子计算,本质上也是概率性的!
第二个重要的区别是,一个传统的位可以被无限次读取,而量子比特一旦被读取过,就会失去量子
性,坍缩成一个传统的位。想想薛定谔的猫,“测量”就是打开盒子,看看猫有没有死。一旦发现
它死了,即使合上盖子再打开,猫也不会再活过来。用量子力学的话说,“波函数发生了坍缩”。
我们假设一个量子比特可以测到0的概率为|α|2,测到1的概率为|β|2。由于测到的值非0即1,所
以:
其中,包含α和β的列向量是一个量子比特,α和β上方的横线表示复共轭。之所以把概率写成α和β
模长的平方,是因为α和β本质上是两个波函数的幅值,而任何测量手段都是在取各自的模平方。
总结:量子比特是两个复数的α和β的单位向量。量子比特被测量概率为0的是|α|2,被测量为1。
α和β在被测量之前,是不得而知的,测过之后则坍缩。
量子比特符号
我们通常使用狄拉克标记(也称作bra-ket标记)表示量子比特。bra代表行向量,用⟨ |表示,ket
代表列向量,用| ⟩表示。例如,我们可以按照以下的方式在狄拉克表示中写入测到的“0”状态
和“1”状态。(注意不要将bra/ket的表示和向量内的内容混淆。)
量子比特有纯态和混合态的区别。如果一个量子比特的态可以完全用|0
⟩
和|1
⟩
线性表示,这就是一
个纯态:
还有一些纯态的简单表示例子:
剩余10页未读,继续阅读
一曲歌长安
- 粉丝: 50
- 资源: 302
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0