Я хочу сгенерировать случайное число, используя данную функцию f1()
. У меня есть решение, но я не могу понять количество итераций, необходимое (5 в данном случае) для генерации случайного числа.
Я пытался читать другие вопросы и ответы, но они сосредоточились на том, как генерировать случайное число(s), а не о том, почему следовали определенной технике.
Это мой код:
import random
def f1():
return(random.randint(0, 1))
def f29():
while(1):
Res = 0
for _ in range(0, 5):
Res = Res << 1 | f1()
if(Res <= 29):
return (Res)
print(f29())
Я заметил одну вещь: если я изменю диапазон цикла for с 5 на 4появлялись только цифры ниже 20, если я изменил их на 3, появлялись только однозначные цифры. Может быть, мои наблюдения анекдотичны. Моя цель - сгенерировать случайное число от 0 до 29 включительно, используя f1 (), которая генерирует случайное целое число: 0 или 1.