Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nome completo: Std.Canon.ApplyControlOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Sommario
Applica oracletarget quando controlRegister è nello stato specificato da bits.
Descrizione
Applica un'operazione unitaria oracle sul target, controllato su uno stato specificato da una maschera di bit specificata bits.
Il bit in corrispondenza del bits[i] corrisponde al qubit in corrispondenza di controlRegister[i].
Il modello specificato da bits può essere più breve di controlRegister, nel qual caso i qubit di controllo aggiuntivi vengono ignorati ( ovvero non sono controllati in |0⟩ né |1⟩).
Se bits è più lungo di controlRegister, viene generato un errore.
Immissione
Bit
Stringa di bit su cui controllare l'operazione unitaria specificata.
oracolo
Operazione unitaria da applicare alla destinazione.
bersaglio
Destinazione da passare a oracle come input.
controlRegister
Registro quantistico che controlla l'applicazione di oracle.
Esempio
// When bits = [1,0,0] oracle is applied if and only if controlRegister
// is in the state |100⟩.
use t = Qubit();
use c = Qubit[3];
X(c[0]);
ApplyControlledOnBitString([true, false, false], X, c, t);
Message($"{M(t)}"); // Prints `One` since oracle `X` was applied.