Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Nom complet : Std.Canon.ApplyControlOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Résumé
Applique oracle sur target lorsque controlRegister est dans l’état spécifié par bits.
Descriptif
Applique une opération unitaire oracle sur la target, contrôlée sur un état spécifié par un masque de bits donné bits.
Le bit à bits[i] correspond au qubit à controlRegister[i].
Le modèle donné par bits peut être plus court que controlRegister, auquel cas des qubits de contrôle supplémentaires sont ignorés (autrement dit, ni contrôlés sur |0⟩ ni |1⟩).
Si bits est plus long que controlRegister, une erreur est générée.
Entrée
bribes
Chaîne de bits sur laquelle contrôler l’opération unitaire donnée.
oracle
Opération unitaire à appliquer sur la cible.
cible
Cible à passer à oracle en tant qu’entrée.
controlRegister
Registre quantique qui contrôle l’application de oracle.
Exemple
// 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.