№ 1799Квантовые вычисленияУровень 2

Квантовый оракул ровно одной единицы

Входы — три кубита в произвольном состоянии $|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...

    }
}

Сообщить об ошибке

Войти, чтобы отправить материал.