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

Получить случайный бит с заданными вероятностями

В предыдущих упражнениях исходы были равновероятны. Теперь используйте зависимость вероятностей измерения от амплитуд кубита, чтобы получить разные вероятности.

Вход — число x типа Double, $0\le x\le1$. Напишите операцию на языке Q#, возвращающую 0 с вероятностью x и 1 с вероятностью $1-x$.

В пространстве имён Std.Math доступны полезные функции Sqrt, ArcCos и ArcSin.

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

namespace Kata {
    import Std.Math.*;

    operation WeightedRandomBit(x : Double) : Int {
        // Implement your solution here...

        return -1;
    }
}