把它放在一起:傳送
讓我們回到在量子電路中定義的遠距傳感電路的例子。 下面顯示的是一個實現遠距傳送的教科書量子電路,包括量子部分,測量和經典控制的校正操作。
我們現在可以將這個量子電路中的每個步驟轉換爲Q#。 首先,我們開始定義一個新的操作,同時執行兩個量子位msg
的遠距傳送:
operation Teleport(msg : Qubit, there : Qubit) : () {
body {
接下來,我們here
用一個using
塊來分配一個量子位:
using (register = Qubit[1]) {
let here = register[0];
然後我們可以通過使用H和CNOT操作在here
和there
創建糾纏對:
H(here);
CNOT(here, there);
然後我們使用下一個 operatornameCNOT
和Hgates來移動我們的消息量子位:
CNOT(msg, here);
H(msg);
最後,我們使用M來執行測量並將它們饋送到經典控制中,如if
語句所示:
// Measure out the entanglement.
if (M(msg) == One) { Z(there); }
if (M(here) == One) { X(there); }
這完成了我們的teleportation操作符的定義,所以我們可以here
釋放,結束身體並結束操作。
}
}
}