Obwód
można przetłumaczyć na następujący kod:
operation Teleport(msg, there) {
let register = AllocateRegister();
let here = register;
H(here);
CNOT(here, there);
CNOT(msg, here);
H(msg);
// Measure out the entanglement.
if (M(msg) == One) { Z(there); }
if (M(here) == One) { X(there); }
}
}
Jak powstają instrukcje if? Dlaczego po pomiarach używane są podwójne linie?
circuit-construction
notation
R. Chopin
źródło
źródło
Odpowiedzi:
Podwójne linie są jedną wspólną konwencją dla klasycznych bitów w schematach obwodów kwantowych. W tym przypadku reprezentują bity wynikające z pomiarów kubitów
msg
ihere
.Kontrolowane operacje obejmujące klasyczne bity są tylko operacjami, które są wykonywane, jeśli te klasyczne bity mają wartość 1, do czego
if
służą instrukcje w pseudokodzie.źródło