Ваша задача здесь будет заключаться в том, чтобы реализовать функцию 1, которая формирует перестановку положительных целых чисел (биекция от положительных целых чисел на себя). Это означает, что каждое положительное целое число должно появляться ровно один раз в перестановке. Уловка в том, что ваша функция должна иметь большую вероятность вывести нечетное число, чем четное число.
Теперь это может показаться странным или невозможным. Конечно, нечетных чисел столько же, сколько четных? И хотя эта интуиция верна для конечных множеств, на самом деле она не справедлива для бесконечных множеств. Например, возьмите следующую перестановку:
1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 45 47 24 49 51 26 53 55 ...
Если вы возьмете какой-либо подраздел последовательности с размером больше вас будет по крайней мере столько же нечетных чисел, сколько и четных чисел, поэтому кажется, что вероятность того, что любой случайный член будет нечетным, больше, чем вероятность быть четным. Вы также заметите, что каждое нечетное или четное число в конечном итоге появится в последовательности и может появиться только один раз. Таким образом, последовательность является истинной перестановкой.
Определение вероятности
Чтобы избежать путаницы или двусмысленности, я собираюсь четко изложить, что подразумевается под вероятностью в этом вопросе.
Допустим, у нас есть функция . Вероятность того, что число будет нечетным, будет определяться как предел отношения нечетных членов набора к размеру набора когда стремится к бесконечности.
Например, вышеупомянутая функция будет иметь вероятность быть нечетной .
Это код-гольф, поэтому ответы будут оцениваться в байтах, причем меньше байтов будет лучше.
Дополнительные проблемы
Вот несколько забавных идей, с которыми можно поиграть и, возможно, попытаться реализовать. Это просто для удовольствия и никак не влияет на выигрыш. Некоторые из них даже не являются действительными решениями этой проблемы, и ответ, который включает в себя только решения для задач 2 или 3, не является действительным ответом и может быть удален .
Запишите перестановку с нечетной вероятностью . (это возможно)
Напишите перестановку, которая имеет больше нечетных чисел, чем четные числа в для любого но имеет нечетную вероятность .
Напишите перестановку, у которой нет определенной вероятности (то есть нет предела).
1: здесь функция будет означать программу или функцию. Это просто кусок кода, который принимает ввод и производит вывод.