以下内容参照微软研究院主题演讲《Quantum Computing for Computer Scientists(计算机科学家量子计算导读)》的结构进行整理和扩充的.
本篇是第一部分.
经典位的矢量表示
经典 (Classic) 计算机是基于 0 和 1 进行计算的.
0 和 1 也可以叫做真假(True/False), 开关(On/Off), 正反, 阴阳... 总之是两个相对的值, 我们称之为布尔值(Boolean).
0 和 1 都是一维空间的标量, 就是只有一条横坐标上的两个点.
0 和 1 都是一维空间的标量
我们强行把这个一维坐标变为二维平面, 那么 0 和 1 就有了新的表示法.
二维空间中 0 和 1 的分布
在上图中, 我们以竖向作为值, 那么 (0,1) 对应值为 1,(1,0)对应值为 0.
如果我们只考虑绝对高度, 那么 (-1,0) 对应值 0,(0,-1)对应值 1.
用小括号的写法太复杂, 我们可以简写为:
即 |0> 等同 (1,0) 表示值 1,|1 > 等同 (0,1) 表示值 0.
另外一种记忆方法是,|0 > 表示二元数的第 0 位是 1(第 1 位就是 0 了), 即(1,0); 而 | 1 > 表示二元数的第 1 位是 1(第 0 位就是 0 了), 即(0,1).
总之这里的右尖符号>表示这是个二维向量数.
矩阵乘法公式
对于第二个乘数只有一列的情况下, 矩阵相乘其结果的第 n 项, 等于第一个乘数的第 n 行的每个数字, 乘以第二个乘数对应的数字, 然后结果相加. 如下:
记忆方法, 可以只看每一行, 第一个矩阵每行用加号相连, 如 变为, 然后再把第二个矩阵的每一项插到每个加数上, 变为.
如果第二个矩阵不止一列, 就稍微麻烦些, 公式如下:
注意每行的规律, 从 变为, 再变为
.
单位矩阵
完全由 0 和 1 组成的矩阵, 并且从左上角到右下角这条斜线上的数字都是 1, 比如下面三个都是单位矩阵:
为什么叫单位矩阵? 对于标量来说, 单位 1 乘以任何数都仍然是任何数. 单位矩阵也具有这个性质, 比如:
第 0 行 (1,0,0) 其实就是只要 (7,2,8) 的第 0 项即 7, 在结果中 02 和 08 就是把 2 和 8 去掉. 同样第 1 行 (0,1,0) 就是只要 (7,2,8) 中的第 1 项即 2, 去掉 7 和 8; 第 2 行 (0,0,1) 就是只要第 2 项的 8.
语言表述就是, 把第 0 项留下做第 0 项, 第 1 项留下做第 1 项, 第 2 项留下做第 2 项.... 所以等于没变.
这种情况对于多列矩阵同样有效:
翻转矩阵
如果我们把最后一项留下做第 0 项, 把倒数第二项留下做第 1 项,... 以此类推, 就能够把整个矩阵上下颠倒过来.
窍门就是不使用左上到右下都是 1 的单位矩阵, 而是使用右上到左下都是 1 的新矩阵:
我们还可以利用特殊的 01 矩阵来实现局部翻转(下例只翻转最后两个):
对矩阵完全翻转的操作我们可以使用符号﹁表示:
向量化 (矩阵化) 的布尔比特是量子计算的基础, 后续文章我们将逐渐进入量子计算的实现方法和算法原理.
来源: http://www.jianshu.com/p/6572007db383