튜링 완성 언어의 좋은 점 중 하나는 전체 우주의 시뮬레이션을 포함하여 모든 프로그램을 작성하는 데 사용할 수 있다는 것입니다.
당신의 임무는 정확히 그렇게하는 것입니다 : 우주를 시뮬레이트하는 프로그램을 작성하십시오 .
참고 :이 작업을 수행 할 수 있을지 확신 할 수 없지만, 현재 시뮬레이션에 포함 된 입자 10 90 개 모두가 실제로 수행해야하는 작업을 수행 하는지 여부를 확인할 수있는 여가 시간이 충분하지 않습니다 . 따라서 테스트 및 평가를 단순화하기 위해 유니버스 시뮬레이터가 단일 시작 입자로만 작동하는 것으로 충분합니다. 흥미로운 점을 유지하기 위해이 입자가 최근에 발견 된 Higgs Boson이라고 가정 해 봅시다.
당신의 우주는 그 중간에 약 120 GeV의 단일 Higgs Boson으로 시작합니다. 출력을 너무 길게 만들지 않으려면 "일반 클럭 속도"5.4 × 10 -44 초 대신 이 유니버스를 10-25 초만 틱으로 설정해 보겠습니다 .
이 Higgs boson은 1.6x10 -22 초의 반감기를 가짐으로써 조만간 부패 할 것이므로 시뮬레이션의 모든 틱마다 0.0433 %의 부패 확률이 있습니다. 여기에서 썩는 부분을 확인할 수 있습니다 . 중앙 집중식 요구 사항을 단순화하기 위해 사용해야 할 분기 비율을 나열합니다.
시뮬레이션 실행
시뮬레이션의 틱마다 Higgs boson은 0.0433 %의 부패 확률을가집니다. 이 경우 나열된 확률로 다음 입자로 붕괴됩니다 (출력에 이러한 이름을 사용해야 함).
- 바텀 쿼크 + 바텀 안티 쿼크 (64.8 %)
- 2W 보손 (14.1 %)
- 2 개 글루온 (8.82 %)
- 타우 렙톤 + 안티 타우 립톤 (7.04 %)
- 참 쿼크 + 참 안티 쿼크 (3.27 %)
- 2 개의 Z 보손 (1.59 %)
- 2 개의 광자 (0.223 %)
- 1 Z 보손 + 1 광자 (0.111 %)
- 뮤온 + 안티 무온 (0.0244 %)
- 최고 쿼크 + 최고 쿼크 (0.0216 %)
총 100 %.
이 입자들 중 일부는 더 부패 될 것이다.
W boson : 반감기 10 -25 초로, 같은 확률로 모든 틱에서 50 % 확률로 다음 중 하나에 부패 할 수 있습니다.
- 양전자 + 중성미자
- 안티 무온 + 중성미자
- 안티 타우 렙톤 + 뉴트리노
Z boson : 반감기 10-25 초, 이는 모든 진드기마다 50 % 확률로 다음 중 하나로 붕괴됨을 의미합니다.
- 뉴트리노 + 안티 뉴트리노 (20.6 %)
- 전자 + 양전자 (3.4 %)
- 뮤온 + 안티 무온 (3.4 %)
- 타우 렙톤 + 안티 타우 립톤 (3.4 %)
- 다운 쿼크 + 다운 쿼크 (15.2 %)
- 이상한 쿼크 + 이상한 안티 쿼크 (15.2 %)
- 바텀 쿼크 + 바텀 안티 쿼크 (15.2 %)
- 쿼크 업 + 안티 쿼크 업 (11.8 %)
- 참 쿼크 + 참 안티 쿼크 (11.8 %)
최고 쿼크 : 5 × 10-25 초의 반감기 , 이것은 동일한 확률로 다음과 같은 진드기마다 12.95 %의 확률로 쇠퇴합니다.
- W 보손 + 다운 쿼크
- W 보손 + 이상한 쿼크
- W 보손 + 바텀 쿼크
물론, W boson도 곧 부패 할 것입니다 ...
톱 쿼크는 상단 쿼크와 유사하게 작동 : 그것은 W 보손 및 광고 / S / B의 쿼크로 붕괴.
다른 모든 입자 (Z 및 W 보손 및 상단 쿼크를 제외한 모든 입자 )의 반감기는 수십 배 더 길어 지므로 출력을 어지럽히 지 않기 위해 시뮬레이션에 안정적인 것으로 간주됩니다 .
우주가 거의 비었기 때문에 모든 입자는 충분한 공간을 확보하고 서로 상호 작용하지 않습니다. 따라서 모든 개별 입자는 분할 가능성을 포함하여 모든 측면에서 서로 독립적입니다.
산출:
시뮬레이션의 모든 진드기마다 시뮬레이션 된 유니버스의 내용을 새 줄로 인쇄해야합니다. 예를 들면 다음과 같습니다.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 1 Higgs boson.
The universe contains 2 W bosons.
The universe contains 2 W bosons.
The universe contains 1 W boson, 1 positron and 1 neutrino.
The universe contains 1 positron, 1 antitau lepton and 2 neutrinos.
Simulation ended after 0.8 yoctoseconds.
라인에서 입자의 순서는 중요하지 않습니다. 그러나 구두점 및 복수형을 포함하여 형식은 위의 예와 정확히 일치해야합니다 . 전체 (미니) 유니버스를 시뮬레이트하면 멋지게 보일 것입니다 (그리고 엄격하지 않은 출력 요구 사항의 남용을 제거하고 싶었습니다)
각 줄은 0.1 요초에 해당하지만 프로그램에서 출력을 인쇄하는 데 시간이 오래 걸리면 용서받을 수 있습니다.
"안정된"입자 만 남아 있으면 시뮬레이션이 종료됩니다.
채점
표준 코드 골프 규칙이 적용됩니다.
난수 생성기는 의사 난수 일 수 있지만 언어가 기본적으로 시드하지 않으면 시드를 작성해야합니다. RNG의 확률 분포는 균일해야합니다.
- 프로그램이 정수를 입력으로 사용하고 많은 Higgs boson으로 시작하면 코드 크기에 -10 %의 보너스를 얻게됩니다.
튜링 머신 애호가를위한 예외입니다.
실제 Turing 머신 또는 유사한 언어 (Brainfuck와 같은)로 행운을 시험하려는 사람들 은 다음 규칙 변경을 통해 작업을보다 쉽게 수행 할 수 있습니다 (언어가 Brainfuck-derivative이거나 다른 단순화 된 Turing- 할당 할 수없고, ALU가없고, 테이프의 값은 하나만 증감 될 수 있습니다 .
- 입자 이름은 쿼크의 경우 d, s, b, t, u, c, 중성미자의 경우 v, 타우 렙턴의 경우 T, 뮤온의 경우 m, 글루온의 경우 g, 광자의 경우에는 p, 광자, Z, W 및 H로 단순화됩니다. bosons-전자의 경우와 양전자의 경우 +. 각각의 틱에서, 0 또는 1의 값을 갖는 입력이 표준 입력으로부터 제공되며, 목록의 첫 번째 불안정한 입자가 붕괴되는지 여부를 나타냅니다.
따라서 예제 출력은
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
내장 기능이 있습니까?