我经历了一段对量子计算机如何工作以及如果它们变得实用可能有什么好处感兴趣的时期。我知道他们被谈论破解密码。我感兴趣的是通过基本上尝试所有可能的输入(并行)并查看是否达到任何错误状态来使用它们来验证软件。
我知道这有点天方夜谭,但我想知道其他人是否对量子计算机感兴趣,它们是如何工作的,以及它们有什么用处。
补充:只是为了好玩,让我抛出一个迷你教程:
假设你有 N 位内存可以玩。假设您可以使用输入数据加载这些位(或其中一些位)。然后假设您可以对它们执行有限的操作序列(不使用任何额外的内存),将答案留在其中。
要使用量子计算机执行此操作,您只需确保整个计算是可逆的,通过保留一些位来记录您采用的分支,以便您可以撤消它们。如果这样做,那么所有操作都可以写成 N 位上的简单酉矩阵变换。(酉变换是 N 维坐标系中的纯旋转。)因此执行计算包括在位向量上应用一系列纯旋转。
如果你这样做,那么如果 N 位向量在量子计算机中,它可以被初始化为所有 2^N(或更少)可能的输入在“平行宇宙”中同时叠加的状态。然后,如果您进行计算,它会同时进行所有计算。
现在,要查看其中一个输入是否为您提供特定答案,您所要做的就是让它运行到特定状态。如果你停止它并检查状态,它所做的就是随机选择一个宇宙并丢弃所有其余的。因此,Grover 算法让你做的是,在不停止它的情况下,强调具有答案状态的宇宙的概率。然后你向前运行它,然后向后运行,然后向前运行,以此类推进行多次迭代,直到答案宇宙具有非常高的概率。然后如果你检查它,你很有可能看到你想要的答案。
呼...