今天要给大家介绍的是这本书《Programming Quantum Computers —— Essential Algorithms and Code Samples》,主要讲如何在量子计算机上编程,又示例的代码可以跑 https://oreilly-qc.github.io./ ,这本书的理解方向是纯粹计算机的,连矩阵都很少涉及,一个量子计算机就像是协处理器一样,很像我们现在的GPU。
这本书一共分为三个部分,我也将分成三篇文章来写。
单量子比特
这本书中对于量子的表达方式如下circle notation:
蓝色圈的面积就是这个量子态测量后是这个状态的概率,中间的蓝色短线代表他们的相位,因为全局相位也观察不出来,所以一般$|0\rangle$就是朝上的。对于一个量子比特来说,重要的也就这两个,magnitude和relative phase(可能因为重要的是概率大小,所以他其实没有提amplitude其实是一个复数)。
这两个态实际上是等价的。
电路图呢,一般长这样
这个电路图对应的代码如下:(这个例子都可以在上面那个网站上跑起来)
qc.reset(1); // allocate one qubit
qc.write(0); // write the value zero
qc.had(); // place it into superposition of 0 and 1
var result = qc.read(); // read the result as a digital bit
第一步就是申请一个qubit,就像你要给变量分配空间一样。
第二步写0,其实写0很容易,你可以直接测量,要么0,要么1,如果结果是1的话,再做一个not操作就好;当然,你要是嫌麻烦,对于一个qubit,长时间的静置他,他也会变成0,毕竟还是基态比较稳定。
第三步就是进行一个H门的操作
第四步读,其实就是测量了
常见的作用于单量子比特操作的表达方式: