Moin!
Die Lösungen für Y führen dich aber nach meinem Ermessen nicht ans Ziel. Warum fragst du nicht nach einer Lösung für X?
Dafür müsste ich ersteinmal sehen, dass ich Problem X habe.
Also was soll fachlich dabei rauskommen?
Die Raumkoordinate überprüfen.
Box-Muller-Zufallsmethode hast du schon erwähnt. [...] Was macht die Funktion gauss()?
Die Box-Muller-Methode erzeugt aus Gleichverteitleten Zufallszahlen Normalverteilte auch Gauss-Normalverteilte gennant. Das macht die Funktion gauss().
Warum willst du alle Elemente des Arrays mit allen anderen Elementen des Arrays vergleichen?
Weil nicht Zwei Objekte den gleichen Punkt einnehmen können bzw. sollten. Das könnte ich zwar auch realisieren aber da fehlt mir immoment noch die Motivation zu, dass mach ich vielleicht später.
Das Problem mit deinem Algorithmus ist, dass er quadratische Laufzeit aufweist.
Jup, das sieht so aus. das war und ist mir aber durchaus bewusst.
Allerdings gibt es eine sehr wichtige Eigenschaft: Das, was zu tun ist, soll nur passieren, wenn die Werte für X und Y und Z gleich sind. Man kann also grundsätzlich das Array mindestens mal nach X, lieber aber nach allen drei Werten sortieren, weil dann die Abfrage "nur noch" prüfen muss, ob das Arrayelement i dieselben Werte für X, Y und Z hat, wie das Arrayelement i+1. Und das wären dann keine zwei ineinander verschachtelte Schleifen mit quadratischer Laufzeit, sondern nur noch EINE Schleife mit linearer Laufzeit.
Da hatte ich noch garnicht dran gedacht, Danke! Obwohl ich das händisch genauso in der Datenbank mache wenn ich Stichprobenartig mal rein schaue.
Da du aber leider nicht sagst, was das Array eigentlich enthält, musst du halt mit der enorm schnell wachsenden quadratischen Laufzeit leben.
Das Array enthält Arrays mit X,Y und Z , sprich array([0]=>array([x]=>??? [y]=>??? [z]=>???)[1]=>array([x]=>??? [y]=>??? [z]=>???)....)
Gruß Jo