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

Квантовый оракул логического ИЛИ

Входы — N кубитов в произвольном состоянии $|x\rangle$ и целевой кубит в произвольном состоянии $|y\rangle$.

Реализуйте на языке Q# квантовый оракул для функции $f(x)=x_0\vee x_1\vee\cdots\vee x_{N-1}$. Он должен действовать как $|x\rangle|y\rangle\mapsto|x\rangle|y\oplus f(x)\rangle$.

Восстановите исходные значения входного регистра. Решение должно работать на суперпозициях; измерения запрещены.

Заготовка Q#:

namespace Kata {
    operation Oracle_Or(x : Qubit[], y : Qubit) : Unit is Adj + Ctl {
        // Implement your solution here...

    }
}