Фазовый оракул чётности числа единиц
Вход — массив из $N$ кубитов в произвольном состоянии. Для битовой строки $x$ положим $f(x)=1$, если число единиц в ней нечётно, и $f(x)=0$ в противном случае.
Напишите операцию на языке Q#, реализующую $U_f|x\rangle=(-1)^{f(x)}|x\rangle$ для каждого базисного вектора.
Подсказка источника: выразите $f(x)$ как сумму функций отдельных битов по модулю 2. Затем представьте действие оракула как произведение действий на отдельные кубиты.
Заготовка Q#:
namespace Kata {
operation PhaseOracle_Parity(x : Qubit[]) : Unit is Adj + Ctl {
// Implement your solution here...
}
}Сообщить об ошибке
Войти, чтобы отправить материал.