from random import randint, random
def f1():
""" точная, с непредсказуемым временем вычисления """
while True:
a, b = randint(0, 1), randint(0, 1)
if a == 1 == b:
continue
return a == b ? 1 : 0
def f2():
""" приблизительная, с фиксированным временем вычисления """
return 0 if random() < 2 / 3 else 1
seoplus2019, мой умный друг. ПХПшный rand выдаёт целое, 1 либо 2. Питонский random() выдаёт равномерно распределённый float от 0 до 1.
То, что ты написал, выдаёт 50% / 50% независимо от величины барьера.
Сгенерируйте 3 числа равномерно. Затем, если выпало одно из первых 2 чисел, верните 0, если выпало третье число - верните 1. Тогда, в теории, 1 будет выпадать в два раза реже.