Написать функцию randbits(a, b, n), параметры которой — натуральные числа, причём a меньше b. Функция должна возвращать случайное натуральное число из диапазона от a до b включительно, в двоичном представлении которого присутствует ровно n единиц. Если таких чисел нет, возвращается 0.
- Тесты будут проверять статистическую корректность и быстродействие, пример ниже в них не входит; он приведён только для понятности.
1 print(*[randbits(2, 66, i) for i in range(1, 10)])
4 40 25 15 55 63 0 0 0
Т. е. 100₂ 101000₂ 11001₂ 1111₂ 110111₂ 111111₂ 0 0 0