Создание генератора случайных чисел из броска монеты

Вчера у меня был этот вопрос интервью, который я не могТ полностью ответить:

Учитывая функциюf() = 0 or 1 с идеальным распределением 1: 1, создайте функциюf(n) = 0, 1, 2, ..., n-1 каждый с вероятностью 1 / n

Я мог бы придумать решение для, если n является естественной степенью 2, то есть использоватьf() генерировать биты двоичного числаk=ln_2 n, Но это, очевидно, нескажем, n = 5, так как это приведет кf(5) = 5,6,7 чего мы не хотим.

Кто-нибудь знает решение?

Ответы на вопрос(4)

Ваш ответ на вопрос