Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 oracle em target quando controlRegister está no estado especificado por bits.
Descrição
Aplica uma operação unitária oracle no target, controlada em um estado especificado por uma máscara de bits específica bits.
O bit em bits[i] corresponde ao qubit em controlRegister[i].
O padrão fornecido por bits pode ser menor que controlRegister, caso em que qubits de controle adicionais são ignorados (ou seja, não controlados em |0⟩ nem |1⟩).
Se bits for maior que controlRegister, um erro será gerado.
Entrada
Bits
A cadeia de caracteres de bits na qual controlar a operação unitária fornecida.
oráculo
A operação unitária a ser aplicada no destino.
alvo
O destino a ser passado para oracle como entrada.
controlRegister
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.