Một nhà vật lý lười biếng có công việc để thực hiện thí nghiệm khe đôi. Tuy nhiên, họ lười biếng và không thể bận tâm để tự thiết lập tất cả các thiết bị và do đó sẽ mô phỏng các hiệu ứng. Họ không thể lập trình mặc dù vậy sẽ cần một số trợ giúp. Vì họ lười nên chương trình của bạn nên càng ngắn càng tốt.
Cho một số nguyên dương lẻ n
( n >= 1
và n % 2 == 1
), thực hiện mô phỏng.
Làm thế nào nó hoạt động
Bạn sẽ bắt đầu với một khung vẽ trống và mỗi khung hình, một hạt ánh sáng sẽ đi qua các khe và hạ cánh trên khung vẽ. Hạt sẽ hạ cánh ở cực đại với cơ hội:
n = 1
:
+-----+
| |
| 1/2 |
| |
+-----+
n = 3
:
+-----+ +-----+ +-----+
| | | | | |
| 1/4 | | 1/2 | | 1/4 |
| | | | | |
+-----+ +-----+ +-----+
n = 5
:
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| 1/8 | | 1/4 | | 1/2 | | 1/4 | | 1/8 |
| | | | | | | | | |
+-----+ +-----+ +-----+ +-----+ +-----+
Vân vân.
Ví dụ: đối với n=5
chúng tôi kiểm tra hộp giữa, có 50% khả năng rơi vào đó. Nếu nó rơi vào cuối khung hình, nếu không chuyển sang hai khung hình tiếp theo, sẽ có 25% khả năng rơi vào những khung hình đó. Nếu nó rơi vào cuối khung hình, nếu không chuyển sang hai khung hình tiếp theo, sẽ có 12,5% cơ hội rơi vào những khung hình đó. Nếu nó không rơi thì không thành vấn đề, nó vẫn là phần cuối của khung.
Đã có một số nhầm lẫn về cách tính toán các cơ hội, hầu hết điều này là do mọi người nghĩ về chúng như xác suất nên tăng lên 1. Loại bỏ ý tưởng đó khỏi tâm trí của bạn và nó sẽ làm sáng tỏ một chút cho bạn.
- Nhiều nhất một hạt sẽ xếp trên mỗi khung, điều này có nghĩa là một hạt có thể không hạ cánh hoàn toàn trên khung đó.
- Một hạt có thể được đại diện bởi bất kỳ ký tự có thể in.
- Các hạt sẽ hạ cánh bất cứ nơi nào trong hộp với một cơ hội ngẫu nhiên.
- Chiều rộng của các hộp phải là
2n-1
kích thước của khung vẽ. Vì vậy, đối vớin=5
họ nên là1/9
chiều rộng của khung vẽ. - Chiều cao của các hộp phải là chiều cao của khung vẽ.
- Các hạt không nên hạ cánh bên ngoài các hộp.
- Nếu một hạt đã hạ cánh tại một điểm được chọn mà không quan trọng thì nó có thể hạ cánh trở lại.
- Các hộp ascii ở trên là cho rõ ràng, chúng không nên được rút ra.
- Bạn có thể chọn kích thước vải của riêng bạn miễn là hợp lý. Ví dụ, nó không chỉ cao vài pixel. Nó cũng có thể phù hợp với tất cả các hộp trên đó.
- Nếu mã của bạn ngủ giữa các khung, bạn không cần thêm mã đó vào số byte của mình.
Cần có khoảng cách giữa mỗi cực đại, cực tiểu. Cái này phải có cùng chiều rộng với một cái hộp nhưng không có hạt nào rơi xuống đó. Xem sơ đồ sau:
+---+---+---+---+---+
| | | | | |
|max|min|max|min|max|
| | | | | |
+---+---+---+---+---+
Chương trình sẽ chạy cho đến khi nó được dừng bằng tay.
Quy tắc
- Một trình tạo số ngẫu nhiên giả (pRNG) là tốt.
- Sơ hở tiêu chuẩn bị cấm.
- Đầu vào có thể được thực hiện bởi bất kỳ định dạng hợp lý.
- Bạn nên xuất ra STDOUT.
- Đây là môn đánh gôn nên câu trả lời ngắn nhất sẽ thắng.
Thí dụ
GIF sau đây là một ví dụ chạy cho n = 5
. Tôi chỉ gõ nó nhanh lên để cơ hội có thể tắt đi một chút.