Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Fullständigt kvalificerat namn: Std.Canon.Relabel
operation Relabel(current : Qubit[], updated : Qubit[]) : Unit is Adj
Sammanfattning
Lägger om kvantbitarna i matrisen current med kvantbitarna i updated-matrisen. Matrisen updated måste vara en giltig permutation av den current matrisen.
Inmatning
ström
Matris med kvantbitar som ska ometiketteras.
uppdaterad
Matris med kvantbitar som current matrisen ska ommärkts med.
Anmärkningar
Den här åtgärden är användbar när du behöver ange kvantbitar på ett sätt som inte medför några kvantåtgärder.
Observera att när du kompilerar för körning på maskinvara med begränsad qubit-anslutning kanske den här åtgärden inte resulterar i några ändringar i kvantbitsangränsande och att en eller flera SWAP portar fortfarande kan krävas.
Exempel
I följande exempel visas hur du ometiketter kvantbitar i ett register:
use qubits = Qubit[3];
let newOrder = [qubits[2], qubits[0], qubits[1]];
Relabel(qubits, newOrder);
Efter den här åtgärden refererar all användning av qubits[0] till den qubit som ursprungligen qubits[2]och så vidare.
Om du vill byta ut etiketterna på två kvantbitar, den virtuella motsvarigheten till en SWAP gate, kan du använda följande kod:
use (q0, q1) = (Qubit(), Qubit());
Relabel([q0, q1], [q1, q0]);
Observera att angränsande till den här åtgärden effektivt ändrar argumentordningen, så att Adjoint Relabel(qubits, newOrder) motsvarar Relabel(newOrder, qubits).