Nhiệm vụ của bạn là viết một chương trình hoặc một chức năng mà kết quả đầu ra n
số ngẫu nhiên từ khoảng [0,1] với số tiền cố định s
.
Đầu vào
n, n≥1
, số lượng số ngẫu nhiên để tạo
s, s>=0, s<=n
, tổng số được tạo
Đầu ra
Một tập hợp ngẫu nhiên n
các số dấu phẩy động với tất cả các phần tử từ khoảng [0,1] và tổng của tất cả các phần tử bằng s
, xuất ra theo bất kỳ cách rõ ràng thuận tiện nào. Tất cả các dữ liệu hợp lệ n
phải có khả năng như nhau trong giới hạn của số dấu phẩy động.
Điều này tương đương với việc lấy mẫu thống nhất từ giao điểm của các điểm bên trong n
khối đơn vị hai chiều và n-1
siêu phẳng hai chiều đi qua (s/n, s/n, …, s/n)
và vuông góc với vectơ (1, 1, …, 1)
(xem khu vực màu đỏ trong Hình 1 để biết ba ví dụ).
Hình 1: Mặt phẳng của các đầu ra hợp lệ với n = 3 và tổng 0,75, 1,75 và 2,75
Ví dụ
n=1, s=0.8 → [0.8]
n=3, s=3.0 → [1.0, 1.0, 1.0]
n=2, s=0.0 → [0.0, 0.0]
n=4, s=2.0 → [0.2509075946818119, 0.14887693388076845, 0.9449661625992032, 0.6552493088382167]
n=10, s=9.999999999999 → [0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999,0.9999999999999]
Quy tắc
- Chương trình của bạn sẽ kết thúc dưới một giây trên máy của bạn ít nhất là với
n≤10
bất kỳ s hợp lệ nào. - Nếu bạn rất muốn, chương trình của bạn có thể là độc quyền ở đầu trên, tức là
s<n
và các số đầu ra từ khoảng thời gian nửa mở [0,1) (phá vỡ ví dụ thứ hai) - Nếu ngôn ngữ của bạn không hỗ trợ số dấu phẩy động, bạn có thể giả mạo đầu ra với ít nhất mười chữ số thập phân sau dấu thập phân.
- Các lỗ hổng tiêu chuẩn không được phép và các phương thức đầu vào / đầu ra tiêu chuẩn được cho phép.
- Đây là môn đánh gôn , vì vậy bài dự thi ngắn nhất, tính bằng byte, sẽ thắng.
This is equal to uniformly sampling from the intersection
- tôi có thể thấy một chương trình chọn ngẫu nhiên từ chỉ các góc của giao lộ đó. Điều đó có hợp lệ không?
s==0 or s==3
. Đối với tất cả các giá trị khác của s
, mặt phẳng có diện tích khác không và bạn phải chọn ngẫu nhiên một điểm trên mặt phẳng đó.
s=2.99999999999, n=3
nào? Chúng ta có thể tạo ra các số thực ngẫu nhiên trong bội số của, nói 1e-9
không?