Суть парадокса в том, что Пенроуз называет R-процедурой. В один конверт кладут случайно выбранное число от 0 до бесконечности. В другой либо в два раза меньше, либо в два раза больше. В любой компьютерной модели вы не сможете выбрать случайное число от 0 до бесконечности. Если пробовать делать какие то упрощенные модели то объяснение результата будет простым.
Например, если в первый конверт выбирать число N из конечного множества, а во второй либо N*2 либо N/2, то очевидно надо выбирать второй конверт сразу же. В парадоксе же существенно то, что вы сначала выбираете один конверт, смотрите что в нем (смотреть = реализовать R-процедуру), а потом выбираете другой.
Можно попробовать так выбирать числа: в первый конверт выбирать число N из конечного заданного множества, а во второй число M равное либо N*2 либо N/2 но так, чтобы M тоже было из множества. Тогда такое рассуждение — в втором конверте будет либо 5 либо 20 равновероятно — не правильное, например для чисел больших медианы заданного множества. Я уверен, что численный эксперимент покажет, что обе стратегии покажут одинаковое матожидание)
Хотя компьютер не может придумать случайное число из бесконечного множества, можно попробовать применить какой нибудь ленивый алгоритм. Что нибудь типа такого — написать функцию, которая придумывает число X от 0 до 1, но это число возвращает не сразу все целиком, а по одному числу после запятой. Например так:
IEnumerable<byte> GetDigits()
{
while (true)
{
yield return rnd.Next(10); //не помню точный синтаксис
}
}
Все вычисления придется корректировать так, чтоб учитывать такую ленивость, это будет непросто, строгие вычисления невозможны, но нам не нужны строгие вычисления, нам достаточно посчитать матожидание

Далее в случайно выбранный конверт кладем 1/X, а в другой 2/X и проводим эксперимент точно так, как указано в парадоксе, т.е.: выбираем случайно конверт, смотрим что там, выбираем другой, увеличиваем капитал. Чтоб каждый эксперимент не сильно влиял на капитал, можно поступать так: если в первом конверте мы встретили N, а в другом M, то капитал надо увеличить на M/N-1. По парадоксу каждый эксперимент будет увеличивать капитал либо на -0.5 либо на 1. Попробую в свободное время написать программу. Еще нюанс что если мы добиваемся равномерного распределения чисел на отрезке [0, 1] (да, 0 и 1 входят в числа, которые будет выдавать GetDigits

) то какое будет распределение в диапазоне (0, +бесконечность) ?