Khoảng cách trung bình của hai điểm trong hypercube đơn vị n chiều


13

Một cách dễ dàng để hiểu hypercube đơn vị n chiều là xem xét vùng không gian theo n chiều mà bạn có thể nhận được nếu mọi thành phần tọa độ nằm trong [0, 1]. Vì vậy, đối với một chiều, đó là đoạn đường thẳng từ 0 đến 1, đối với hai chiều, đó là hình vuông có các góc (0, 0) và (1, 1), v.v.

Viết chương trình hoặc hàm cho n trả về khoảng cách Euclide trung bình của hai điểm được chọn ngẫu nhiên đồng nhất từ ​​hypercube đơn vị n chiều. Câu trả lời của bạn phải nằm trong khoảng 10 -6 giá trị thực tế. Sẽ ổn nếu câu trả lời của bạn vượt quá loại dấu phẩy động ngôn ngữ của bạn cho big n.

Ngẫu nhiên chọn một số 'lớn' của điểm và tính trung bình không đảm bảo độ chính xác như vậy.

Ví dụ:

1 → 0.3333333333 ...
2 → 0.5214054331 ...
3 → 0.6617071822 ...
4 → 0.7776656535 ...
5 → 0.8785309152 ...
6 → 0.9689420830 ...
7 → 1.0515838734 ...
8 → 1.1281653402 ...

Dữ liệu thu được từ MathWorld .

Đây là , byte thấp nhất.


Lặp lại tiêu chí chiến thắng trong một chỉnh sửa.
Bạch tuộc ma thuật Urn

Chỉ cần rõ ràng: khoảng cách đề cập đến khoảng cách Euclide, có?
Dennis

3
@carusocomputing Đâu là điểm thách thức nếu bạn muốn tôi giải quyết nó cho bạn?
orlp

4
@orlp đăng ký sự phản đối của tôi đối với một thách thức là một câu đố toán học cho đến khi ai đó tìm ra toán học, sau đó nó trở thành một câu đố lập trình khi mọi người sao chép công thức bằng các ngôn ngữ khác nhau. Tôi cần phải hỏi một câu hỏi meta về điều này.
Sparr

1
Khi bạn nói 5 chữ số chính xác, bạn có nghĩa là trong vòng 1e-5, hoặc ước tính 1.500000000000001 sẽ sai khi đầu ra phải là 1.499999999999999?
xnor

Câu trả lời:


5

Toán học, 68 byte

NIntegrate[(1-((E^-u^2+u*Erf@u√π-1)/u^2)^#)/u^2,{u,0,∞}]/√π&

Thực hiện các công thức sử dụng NIntegrateđể gần đúng giá trị của nó.

Hình ảnh


Đánh bại tôi sau 58 giây :(
JungHwan Min

Bạn đã tìm thấy công thức ở đâu?
frageum

@feersum Đó là công thức (8) từ Hypercube Line Picking . (10) là một lỗi đánh máy và không nên có tích phân kép hoặc du.
dặm

Nếu bạn thực sự nhập nó dưới dạng văn bản, nó sẽ phân tích cú pháp u√πdưới dạng một mã thông báo, vì vậy bạn cần một khoảng trắng giữa u.
frageum
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.