Distancia promedio de dos puntos en la unidad hipercubo n-dimensional

13

Una manera fácil de comprender el hipercubo n-dimensional de la unidad es considerar la región del espacio en n dimensiones que puede obtener si cada componente de coordenadas se encuentra en [0, 1]. Entonces, para una dimensión es el segmento de línea de 0 a 1, para dos dimensiones es el cuadrado con esquinas (0, 0) y (1, 1), etc.

Escriba un programa o función que dado n devuelve la distancia euclidiana promedio de dos puntos uniformemente seleccionados al azar del hipercubo de la unidad n-dimensión. Su respuesta debe estar dentro de 10 -6 del valor real. Está bien si su respuesta desborda el tipo de coma flotante nativo de su idioma para n grande.

Seleccionar aleatoriamente un "gran" número de puntos y calcular el promedio no garantiza tal precisión.

Ejemplos:

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

Datos adquiridos de MathWorld .

Este es el , el menor recuento de bytes gana.

orlp
fuente
Criterio ganador reiterado en una edición.
Urna de pulpo mágico
Para ser claros: la distancia se refiere a la distancia euclidiana, ¿sí?
Dennis
3
@carusocomputing ¿Cuál es el punto del desafío si quieres que lo resuelva por ti?
orlp 01 de
44
@orlp registra mi objeción a un desafío que es un rompecabezas matemático hasta que alguien descubre las matemáticas, luego se convierte en un rompecabezas de programación cuando todos copian la fórmula en diferentes idiomas. Necesito hacer una meta pregunta sobre esto.
Sparr
1
Cuando dice 5 dígitos de precisión, ¿quiere decir que está dentro de 1e-5, o una estimación de 1.500000000000001 sería incorrecta cuando la salida debería ser 1.499999999999999?
xnor

Respuestas:

5

Mathematica, 68 bytes

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

Implementación de la fórmula utilizando NIntegratepara aproximar su valor.

Imagen

millas
fuente
Golpeame
¿Dónde encontraste la fórmula?
feersum
@feersum Es la fórmula (8) de Hypercube Line Picking . (10) es un error tipográfico y no debería tener la doble integral o du.
millas
Si realmente ingresa esto como texto, se analiza u√πcomo un token, por lo que necesita un espacio entre uy .
fiesta