Một đặc tính tốt của ngôn ngữ hoàn chỉnh Turing là nó có thể được sử dụng để viết bất kỳ chương trình nào, lên đến và bao gồm mô phỏng toàn bộ Vũ trụ.
Công việc của bạn là làm chính xác điều đó: viết một chương trình mô phỏng Vũ trụ .
Lưu ý: mặc dù tôi không nghi ngờ bạn sẽ có thể hoàn thành nhiệm vụ này, nhưng hiện tại tôi không có đủ thời gian rảnh rỗi để xác minh xem liệu tất cả 10 90 hạt trong mô phỏng của bạn có làm những gì họ thực sự nên làm hay không. Do đó, chỉ để đơn giản hóa việc kiểm tra và đánh giá, nó là đủ nếu trình mô phỏng vũ trụ của bạn chỉ hoạt động với một hạt khởi đầu duy nhất. Để giữ cho mọi thứ thú vị, hãy giả sử hạt này là hạt Higgs được phát hiện gần đây.
Vũ trụ của bạn bắt đầu không có gì ngoài một Higgs Boson duy nhất khoảng 120 GeV ở giữa nó. Để không khiến đầu ra quá dài, chúng ta hãy đánh dấu vũ trụ này chỉ trong 10 -25 giây thay vì "tốc độ xung nhịp thông thường" là 5,4 × 10 44 giây ..
Boson Higgs này sẽ phân rã sớm hay muộn vì nó có chu kỳ bán rã là 1,6 × 10 22 giây, do đó, tại mỗi tích tắc của mô phỏng, nó có khả năng phân rã 0,0433%. Bạn có thể kiểm tra ở đây những gì nó sẽ phân rã thành . Để có một yêu cầu trung tâm và đơn giản hóa, tôi liệt kê các tỷ lệ phân nhánh bạn nên sử dụng:
Chạy mô phỏng
Tại mỗi tích tắc của mô phỏng, boson Higgs có 0,0433% cơ hội phân rã. Nếu điều đó xảy ra, nó sẽ phân rã thành các hạt sau, với xác suất được liệt kê (bạn nên sử dụng các tên này trong đầu ra):
- quark đáy + antiquark đáy (64,8%)
- 2 boson (14,1%)
- 2 gluon (8,82%)
- tau lepton + antitau lepton (7,04%)
- quark quyến rũ + antiquark quyến rũ (3,27%)
- 2 boson Z (1,59%)
- 2 photon (0,223%)
- 1 boson + 1 photon (0,11%)
- muon + antimuon (0,0244%)
- quark hàng đầu + antiquark hàng đầu (0,0216%)
Với tổng số 100%.
Một số các hạt này sẽ phân rã hơn nữa.
W boson : thời gian bán hủy 10 -25 giây, điều này có nghĩa là 50% cơ hội phân rã ở mỗi tích tắc thành một trong những điều sau đây, với xác suất bằng nhau:
- positron + neutrino
- antimuon + neutrino
- antitau lepton + neutrino
Z boson : thời gian bán hủy 10 -25 giây, điều này có nghĩa là 50% cơ hội phân rã ở mỗi tích tắc thành một trong những điều sau đây:
- neutrino + antineutrino (20,6%)
- electron + positron (3,4%)
- muon + antimuon (3,4%)
- tau lepton + antitau lepton (3,4%)
- xuống quark + xuống antiquark (15,2%)
- quark lạ + antiquark lạ (15,2%)
- quark đáy + antiquark đáy (15,2%)
- tăng quark + lên antiquark (11,8%)
- quark charm + antiquark (11,8%)
quark hàng đầu : thời gian bán hủy 5 × 10 -25 giây, điều này có nghĩa là 12,95% cơ hội phân rã ở mỗi tích tắc sau đây, với xác suất bằng nhau:
- W boson + quark xuống
- W boson + quark lạ
- W boson + quark đáy
Tất nhiên, boson W cũng sẽ sớm phân rã ...
Các quark top cư xử tương tự như các quark top: nó phân hủy thành một boson W và quảng cáo / s / b quark.
Tất cả các hạt khác (vì vậy tất cả ngoại trừ các boson Z và W và các quark hàng đầu) đều có chu kỳ bán rã dài hơn nhiều bậc, vì vậy để không làm lộn xộn đầu ra, chúng đều được coi là ổn định cho mô phỏng của chúng tôi .
Vì vũ trụ hầu như trống rỗng, tất cả các hạt sẽ có đủ không gian cho riêng chúng và sẽ không tương tác với nhau. Do đó, tất cả các hạt riêng lẻ độc lập với nhau về mọi mặt, bao gồm cả xác suất tách.
Đầu ra:
Mỗi tích tắc của mô phỏng, bạn phải in nội dung của vũ trụ mô phỏng thành một dòng mới. Ví dụ:
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.
Thứ tự của các hạt trong dòng không quan trọng. Tuy nhiên, định dạng phải chính xác như trong ví dụ trên , bao gồm cả dấu câu và số nhiều. Nếu bạn mô phỏng toàn bộ vũ trụ (mini-), nó sẽ trông rất đẹp (Và tôi muốn loại bỏ việc lạm dụng một yêu cầu đầu ra không đủ nghiêm ngặt)
Mỗi dòng tương ứng với 0,1 yoctos giây, nhưng bạn sẽ được tha thứ nếu mất nhiều thời gian hơn chương trình của bạn để in đầu ra.
Mô phỏng kết thúc khi chỉ còn lại các hạt "ổn định".
Chấm điểm
Quy tắc golf tiêu chuẩn áp dụng.
Trình tạo số ngẫu nhiên có thể là giả ngẫu nhiên, nhưng bạn phải chọn nó nếu ngôn ngữ không tạo hạt giống theo mặc định. Phân phối xác suất RNG của bạn phải thống nhất.
- Bạn sẽ nhận được tiền thưởng -10% cho kích thước mã nếu chương trình lấy số nguyên làm đầu vào và bắt đầu với nhiều boson Higgs đó.
Ngoại lệ cho những người đam mê máy Turing.
Đối với những người dám thử vận may với máy Turing thực tế hoặc ngôn ngữ tương tự (như Brainfuck), nhiệm vụ của họ được thực hiện dễ dàng hơn bằng cách thay đổi quy tắc sau (chỉ áp dụng nếu ngôn ngữ là dẫn xuất Brainfuck hoặc nói cách khác là Turing rất đơn giản- máy, không có khả năng gán, thiếu ALU và các giá trị trên băng chỉ có thể được tăng và giảm bởi một) :
- Tên hạt được đơn giản hóa thành d, s, b, t, u, c cho các quark, v cho neutrino, T cho tau lepton, m cho muon, g cho gluon, p cho photon, Z, W và H cho boson, - cho electron và + cho positron. Ở mỗi đánh dấu, một đầu vào có giá trị 0 hoặc 1 được cung cấp từ đầu vào tiêu chuẩn, cho biết liệu hạt không ổn định đầu tiên trong danh sách có phân rã hay không.
Do đó, đầu ra ví dụ sẽ trở thành
H
H
H
H
W W
W W
W + n
+ !T n n
SimulateUniverse
chức năng tích hợp không?