Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nome totalmente qualificado: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Resumo
Aplica-se oracle em target quando controlRegister estiver no estado especificado por bits.
Descrição
Aplica uma operação unitária oracle no target, controlado em um estado especificado por uma determinada máscara de bit bits.
O bit em bits[i] corresponde a qubit em controlRegister[i].
O padrão dado por bits pode ser menor do que controlRegister, caso em que qubits de controle adicionais são ignorados (ou seja, nem controlados em |0⟩ nem |1⟩).
Se bits for maior que controlRegister, um erro será gerado.
Entrada
bits
A cadeia de caracteres de bits para controlar a operação unitária dada.
Oráculo
A operação unitária a ser aplicada no alvo.
público-alvo
O alvo a ser passado para oracle como entrada.
controlRegistrar
Um registro quântico que controla a aplicação de oracle.
Exemplo
// 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.