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

Составить равномерное N-битное случайное число

Вход — целое $N$, $1\le N\le10$. Напишите операцию на языке Q#, равновероятно генерирующую число от 0 до $2^N-1$ включительно с помощью квантовых случайных битов.

Документация, указанная источником: циклы for — https://learn.microsoft.com/azure/quantum/user-guide/language/expressions/iterations; изменяемые переменные — https://learn.microsoft.com/azure/quantum/user-guide/language/typesystem/immutability.

Подсказка источника: можно использовать ранее определённые операции. Полная RandomBit дана в заготовке.

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

namespace Kata {
    operation RandomNBits(N : Int) : Int {
        // Implement your solution here...

        return -1;
    }

    // You can use the operation defined in the first exercise to implement your solution.
    operation RandomBit() : Int {
        use q = Qubit();
        H(q);
        return MResetZ(q) == Zero ? 0 | 1;
    }
}

Предложить решение

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