Составить равномерное 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;
}
}