вторник, 20 июня 2017 г.

Интересная вероятностная задача

Недавно обнаружил интересную задачу. Итак.
Имеется некоторая функция one_two(), которая возвращает равномерно распределенные значения 1 или 2. То есть, вероятность появления 1 или 2-ки равна 50% (1/2).
Задача. Написать такую функцию one_two_three(), которая бы возвращала равномерно распределенные случайные значения 1, 2 или 3 (то есть, вероятность появления каждого числа - 33%, или 1/3). Важный момент. Использовать при этом можно только функцию one_two().
То есть, никаких вызовов random() и все такое.  Пока не могу сообразить, как решить. Но интересно )

Обновление от 21.06.2017:  Удалось решить (кое-как =)) Два дня думал )))