Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Plně kvalifikovaný název: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
Shrnutí
Znovu označí qubity v poli current s qubity v poli updated. Pole updated musí být platným permutací pole current.
Vstup
současný
Pole qubitů, které se mají znovu oznamovat.
aktualizovaný
Pole qubitů, se kterými chcete znovu oznamovat current pole.
Poznámky
Tato operace je užitečná, když potřebujete znovu oznamovat qubity způsobem, který nedochází k žádným kvantovým operacím.
Mějte na paměti, že při kompilaci pro spouštění na hardwaru s omezeným připojením qubitu nemusí tato operace vést ke změnám sousedství qubitu a jedna nebo více bran SWAP může být stále vyžadována.
Příklad
Následující příklad ukazuje, jak znovu označit qubity v registru:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
Po této operaci bude jakékoli použití qubits[0] odkazovat na qubit, který byl původně qubits[2]atd.
Pokud chcete vyměnit popisky na dvou qubitech, virtuální ekvivalent brány SWAP, můžete použít následující kód:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
Všimněte si, že adjoint této operace účinně změní pořadí argumentů, aby Adjoint Relabel(qubits, newOrder) je ekvivalentní Relabel(newOrder, qubits).