Q# 语言中是否有更高阶的 H 门?例如,如果我想将 Hadamard 门应用于 3 个量子位的阵列(组合状态)。有没有办法生成 H 门或其他门的张量积版本?
问问题
86 次
2 回答
3
一种思考方式是考虑酉算子H = |+⟩⟨0| + |−⟩⟨1| 和量子运算H
分开。采取这种观点,酉H是我们如何模拟在H
理想量子处理器上应用操作的效果。然后,量子运算ApplyToEach(H, _)
由酉算子H ⊗ H ⊗ ⋯ ⊗ H表示,与HH
表示的方式完全相同。
这种心智模型的一个结果是张量积是在酉算子之间定义的,而不是在量子操作之间定义的。相反,作用于不同量子位的量子操作的理想行为由每个单独操作的单一表示的张量积表示。
于 2018-07-02T16:35:34.043 回答
0
Q# 不允许您传递比基本门允许的更多的量子比特。所以你必须像这样手动通过 H() 门运行每个量子位
let n = Length(qs);
for(index in 0 .. (n-1)) {
H(qs[index]);
}
或者使用方便的标准库函数
ForEach(H,qs);
不能应用更高阶 H 门的基本原因是它会将函数签名增加到更多的量子位,从而产生复杂性。此外,您可能只想将同一阵列的一些量子位传递给门,在这种情况下,您也不能传递整个阵列,而必须手动完成。
于 2018-07-01T05:35:19.130 回答