Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Volledig gekwalificeerde naam: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
Samenvatting
Labelt de qubits in de current matrix opnieuw met de qubits in de updated matrix. De updated matrix moet een geldige permutatie van de current matrix zijn.
Invoer
actueel
Matrix van qubits die opnieuw moeten worden gelabeld.
Bijgewerkt
Matrix van qubits waarmee de current-matrix opnieuw moet worden gelabeld.
Opmerkingen
Deze bewerking is handig wanneer u qubits opnieuw moet labelen op een manier die geen kwantumbewerkingen met zich meebrengt.
Houd er rekening mee dat bij het compileren van uitvoering op hardware met beperkte qubitconnectiviteit, deze bewerking mogelijk niet leidt tot wijzigingen in qubit-aangrenzing en een of meer SWAP poorten mogelijk nog steeds vereist zijn.
Voorbeeld
In het volgende voorbeeld ziet u hoe u qubits opnieuw labelt in een register:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
Na deze bewerking verwijst elk gebruik van qubits[0] naar de qubit die oorspronkelijk is qubits[2], enzovoort.
Als u de labels wilt uitwisselen op twee qubits, het virtuele equivalent van een SWAP-poort, kunt u de volgende code gebruiken:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
Houd er rekening mee dat de aangrenzende bewerking de volgorde van argumenten effectief wijzigt, zodat Adjoint Relabel(qubits, newOrder) gelijk is aan Relabel(newOrder, qubits).