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

Подготовить произвольное однокубитное состояние

Входы:

1. Вещественное число $\alpha$.
2. Неотрицательное вещественное $\beta=\sqrt{1-\alpha^2}$.
3. Вещественное число $\theta$.
4. Кубит в $|0\rangle$.

Напишите операцию на языке Q#, подготавливающую $\alpha|0\rangle+e^{i\theta}\beta|1\rangle$.

Поскольку физическое значение имеют относительные амплитуды и относительная фаза, таким способом можно подготовить любое состояние одного кубита.

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

namespace Kata {
    import Std.Math.*;

    operation PrepareArbitraryState(
        alpha : Double,
        beta : Double,
        theta : Double,
        q : Qubit
    ) : Unit is Adj + Ctl {
        // Implement your solution here...

    }
}