第一个 Q# 代码示例提供了一个方法“Set”,其编写如下(链接):
operation Set (desired: Result, q1: Qubit) : ()
{
body
{
let current = M(q1);
if (desired != current)
{
X(q1);
}
}
}
此方法将量子位设置为所需值。为此,测量量子比特值,如果该值与预期不同,则“交换”量子比特状态。
但是在量子物理学中,你不能在不破坏粒子的情况下测量它。这是《量子计算与量子信息》一书的引述:
...测量改变了量子比特的状态,将其从 |0> 和 |1> 的叠加折叠到与测量结果一致的特定状态。例如,如果 |+> 的测量结果为 0,那么量子比特的测量后状态将为 |0>。
但是使用 Q#,您可以测量一个量子比特并继续使用它。
为什么 Q# 语言可以让我们实现现实中不可能的操作?
预先感谢您的回答。