Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Полное имя: Std.Canon.ApplyControlledOnBitString
operation ApplyControlledOnBitString<'T>(bits : Bool[], oracle : ('T => Unit is Adj + Ctl), controlRegister : Qubit[], target : 'T) : Unit is Adj + Ctl
Сводка
Применяется oracletarget, если controlRegister находится в состоянии, указанном bits.
Описание
Применяет унитарную операцию oracle на target, контролируемой состоянием, указанным заданным bitsбитовой маской.
Бит в bits[i] соответствует кубитам в controlRegister[i].
Шаблон, заданный bits, может быть короче controlRegister, в этом случае дополнительные кубиты управления игнорируются (т. е. ни на |0⟩, ни на |1⟩).
Если bits больше controlRegister, возникает ошибка.
Ввод
Биты
Битовая строка для управления заданной унитарной операцией.
оракул
Унитарная операция, применяемая к целевому объекту.
цель
Целевой объект, передаваемый в oracle в качестве входных данных.
controlRegister
Квантовый регистр, который управляет применением oracle.
Пример
// 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.