задача
Задача состоит в том, чтобы написать программу, которая выводит непротиворечивое, но в любом случае произвольное положительное целое число (поэтому строго больше 0). Вот подвох: когда источник повторяется раз (код добавляется / соединяется к себе), программа должна иметь вероятность выдачии оставшаяся вероятность выдачибез изменений.
пример
Давайте предположим, что ваш исходный источник является XYZ
целым числом 3
. Потом:
Для :
XYZXYZ
должен вывести с вероятностью (50% времени) ис вероятностью также (50% времени).Для :
XYZXYZXYZ
следует вывести с вероятностью (66,666% времени) ис вероятностью (33,333% времени)Для :
XYZXYZXYZXYZ
следует вывести с вероятностью (75% времени) и с вероятностью (25% времени)
и так далее....
правила
Вы должны построить полную программу . Вывод должен быть распечатан на STDOUT.
Ваша программа, теоретически, должна выводить каждое возможное значение с вероятностями, указанными выше, но небольшое отклонение от этого из-за реализации random является хорошим ( при условии, что реализация не имеет другого распределения - вы не можете использовать нормальное распределение для сохранения байтов ) .
Программа должна (опять же , в теории) работа при сколь угодно большом значении , но технические ограничения , связанные с точностью хороши для больших .
Вывод должен быть в базе 10 (вывод в любую другую базу или с научными обозначениями запрещен). Допускаются конечные / ведущие пробелы и начальные нули.
Исходный источник должен (конечно) иметь длину не менее 1 байта. Вы не можете использовать новую строку между копиями вашего источника. Программа не должна принимать данные (или иметь неиспользуемые пустые данные).
Это код-гольф , поэтому оценка ответа равна длине (оригинального) источника в байтах, при этом меньший показатель лучше.
Примечание: этот вызов является (намного) более сложной версией этого .