把它放在一起:传送
让我们回到在量子电路中定义的远距传感电路的例子。 下面显示的是一个实现远距传送的教科书量子电路,包括量子部分,测量和经典控制的校正操作。
我们现在可以将这个量子电路中的每个步骤转换为Q#。 首先,我们开始定义一个新的操作,同时执行两个量子位msg
的远距传送:
Q#
operation Teleport(msg : Qubit, there : Qubit) : () {
body {
接下来,我们here
用一个using
块来分配一个量子位:
Q#
using (register = Qubit[1]) {
let here = register[0];
然后我们可以通过使用H和CNOT操作在here
和there
创建纠缠对:
Q#
H(here);
CNOT(here, there);
然后我们使用下一个 operatornameCNOT
和Hgates来移动我们的消息量子位:
Q#
CNOT(msg, here);
H(msg);
最后,我们使用M来执行测量并将它们馈送到经典控制中,如if
语句所示:
Q#
// Measure out the entanglement.
if (M(msg) == One) { Z(there); }
if (M(here) == One) { X(there); }
这完成了我们的teleportation操作符的定义,所以我们可以here
释放,结束身体并结束操作。
Q#
}
}
}