Durchschnittlicher Abstand von zwei Punkten im n-dimensionalen Hyperkubus

13

Ein einfacher Weg, um die Einheit n-dimensionaler Hyperwürfel zu verstehen, besteht darin, die Region des Raums in n Dimensionen zu betrachten, die Sie erhalten können, wenn jede Koordinatenkomponente in [0, 1] liegt. Für eine Dimension ist es das Liniensegment von 0 bis 1, für zwei Dimensionen das Quadrat mit den Ecken (0, 0) und (1, 1) usw.

Schreiben Sie ein Programm oder eine Funktion, für die n den durchschnittlichen euklidischen Abstand von zwei Punkten ergibt, die gleichmäßig zufällig aus dem n-dimensionalen Einheitshyperwürfel ausgewählt wurden. Ihre Antwort muss innerhalb von 10 sein -6 des tatsächlichen Wertes liegen. Es ist in Ordnung, wenn Ihre Antwort den nativen Gleitkommatyp Ihrer Sprache für big n überschreitet.

Die zufällige Auswahl einer „großen“ Anzahl von Punkten und die Berechnung des Durchschnitts garantiert keine solche Genauigkeit.

Beispiele:

1 → 0,3333333333 ...
2 → 0,5214054331 ...
3 → 0,6617071822 ...
4 → 0,7776656535 ...
5 → 0,8785309152 ...
6 → 0,9689420830 ...
7 → 1,0515838734 ...
8 → 1,1281653402 ...

Von MathWorld erfasste Daten .

Dies ist , die niedrigste Anzahl an Bytes gewinnt.

orlp
quelle
Wiederholtes Gewinnkriterium bei einer Bearbeitung.
Magic Octopus Urn
Nur um klar zu sein: Entfernung bezieht sich auf die euklidische Entfernung, ja?
Dennis
3
@carusocomputing Wozu dient die Herausforderung, wenn ich sie für Sie lösen soll?
Orlp
4
@orlp registriert meinen Einwand gegen eine Herausforderung, die ein mathematisches Rätsel ist, bis jemand die Mathematik herausgefunden hat. Dann wird es zu einem Programmier-Rätsel, wenn jeder die Formel in verschiedenen Sprachen kopiert. Ich muss eine Meta-Frage dazu stellen.
Sparr
1
Wenn Sie eine Genauigkeit von 5 Stellen angeben, haben Sie eine Genauigkeit von 1 bis 5, oder wäre eine Schätzung von 1,500000000000001 falsch, wenn die Ausgabe 1,499999999999999 betragen sollte?
Xnor

Antworten:

5

Mathematica, 68 Bytes

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

Implementierung der Formel mit, NIntegrateum ihren Wert zu approximieren.

Bild

Meilen
quelle
Schlage mich um 58 Sekunden :(
JungHwan Min
Wo haben Sie die Formel gefunden?
Feersum
@feersum Es ist die Formel (8) von Hypercube Line Picking . (10) ist ein Tippfehler und sollte nicht das doppelte Integral oder du haben.
Meilen
Wenn Sie dies tatsächlich als Text eingeben, wird es u√πals ein Token analysiert , sodass Sie ein Leerzeichen zwischen uund benötigen .
Feersum