Квантовый оракул ровно одной единицы
Входы — три кубита в произвольном состоянии $|x\rangle$ и целевой кубит в произвольном состоянии $|y\rangle$.
Реализуйте на языке Q# оракул функции f(x), равной 1, если ровно один входной бит равен 1, и 0 в остальных случаях. Инвертируйте y тогда и только тогда, когда f(x)=1.
Восстановите исходные значения входного регистра. Решение должно работать на суперпозициях; измерения запрещены.
Заготовка Q#:
namespace Kata {
operation Oracle_Exactly1One(x : Qubit[], y : Qubit) : Unit is Adj + Ctl {
// Implement your solution here...
}
}Предложить решение
Войти, чтобы отправить материал.