직무
작업은 일관성은 있지만 임의의 양의 정수 (엄격히 0보다 큰) 를 출력하는 프로그램을 작성하는 것입니다. 다음은 캐치입니다. 소스가 번 반복 될 때 (코드가 에 추가 / 연결됨 ) 프로그램은 확률로 를 출력 할 확률과 변경하지 않고 을 출력 합니다.
예
초기 소스가 XYZ
integer 이라고 가정합니다 3
. 그때:
들면 :
XYZXYZ
출력해야 의 확률로 (시간의 50 %) 및의 확률로 도 (50 %의 시간).를 들어 :
XYZXYZXYZ
출력해야 의 확률로 (66.666 %의 시간) 및의 확률로 (시간의 33.333 %)들면 :
XYZXYZXYZXYZ
출력해야 의 확률 (75 %의 시간) 및 의 확률로 (25 %의 시간)
등등....
규칙
당신은 전체 프로그램을 구축해야합니다 . 출력은 STDOUT으로 인쇄되어야합니다.
이론적으로 프로그램은 위에서 언급 한 확률로 가능한 모든 값을 출력해야 하지만 무작위 구현으로 인해 약간의 편차가 있습니다 ( 구현이 다른 분포가 아닌 경우- 바이트를 절약하기위한 정규 분포 ) .
프로그램은 (다시 이론적으로) 임의의 큰 값으로 작동해야 하지만 정밀도로 인한 기술적 한계는 큰 합니다.
출력은 10 진이어야합니다 (다른베이스 또는 과학적 표기법으로 출력하는 것은 금지됨). 후행 / 선행 공백 및 선행 0이 허용됩니다.
초기 소스는 물론 1 바이트 이상이어야합니다. 당신은 당신의 소스의 복사본 사이에 줄 바꿈을 가정 할 수 없습니다 . 프로그램은 입력을받지 않아야합니다 (또는 사용되지 않은 빈 입력이 있어야 함).
이것은 code-golf 이므로 답의 점수는 (원본) 소스의 길이 (바이트)이며 점수가 낮을수록 좋습니다.
참고 :이 도전의 (훨씬) 더 열심히 버전 이 하나 .