2
Профессор СнэйпНаверное, можно так. Фиксируем

. В цикле выбираем

случайно и проверяем

. Как только условие выполнилось, присваиваем

и повторяем все сначала, прямо с цикла. Если

транзитивно, то мы (вроде-бы) будем приближаться к искомому

. Последовательность значений, которые присваивались к

должна сходиться (или нет :) ).
Бред, не иначе... :)