Startseite
Forum
Fragen
Suchen
Formeleditor
Über Uns
Registrieren
Login
FAQ
Suchen
Foren-Übersicht
->
Sonstiges
Antwort schreiben
Benutzername
(du bist
nicht
eingeloggt!)
Titel
Nachrichtentext
Smilies
Weitere Smilies ansehen
Schriftfarbe:
Standard
Dunkelrot
Rot
Orange
Braun
Gelb
Grün
Oliv
Cyan
Blau
Dunkelblau
Indigo
Violett
Weiß
Schwarz
Schriftgröße:
Schriftgröße
Winzig
Klein
Normal
Groß
Riesig
Tags schließen
Schreibt eure Formeln hier im Board am besten mit Latex!
So gehts:
Latex-Kurzbeschreibung
|
Formeleditor
[quote="Nikolas"]Worum geht es denn eigentlich? Hast du die Daten selbst erstellt? Ich hatte mal ein ähnliches Problem in der zweiten Runde des Bundeswettbewerb Informatik im letzten Jahr. Mein Ansatz war, dass ich meinen Raum, in dem sich die Punkte aufhalten mit einem Raster versehe und dann alle Punkte in einem Würfel zusammen speicher. Wenn du die Größe des Rasters sinnvoll wählst, musst du nur noch eine geringe Anzahl an Kugeln überprüfen. Wie oft muss denn diese Operation ausgeführt werden?[/quote]
Optionen
HTML ist
aus
BBCode
ist
an
Smilies sind
an
BBCode in diesem Beitrag deaktivieren
Smilies in diesem Beitrag deaktivieren
Spamschutz
Text aus Bild eingeben
Alle Zeiten sind GMT + 1 Stunde
Gehe zu:
Forum auswählen
Themenbereiche
----------------
Mechanik
Elektrik
Quantenphysik
Astronomie
Wärmelehre
Optik
Sonstiges
FAQ
Sonstiges
----------------
Off-Topic
Ankündigungen
Thema-Überblick
Autor
Nachricht
Nikolas
Verfasst am: 07. Sep 2006 17:45
Titel:
Worum geht es denn eigentlich? Hast du die Daten selbst erstellt? Ich hatte mal ein ähnliches Problem in der zweiten Runde des Bundeswettbewerb Informatik im letzten Jahr. Mein Ansatz war, dass ich meinen Raum, in dem sich die Punkte aufhalten mit einem Raster versehe und dann alle Punkte in einem Würfel zusammen speicher. Wenn du die Größe des Rasters sinnvoll wählst, musst du nur noch eine geringe Anzahl an Kugeln überprüfen.
Wie oft muss denn diese Operation ausgeführt werden?
sax
Verfasst am: 07. Sep 2006 03:30
Titel:
Hmm, die Frage hat nicht viel mit Physik zu tun schau doch mal bei den
Informatikern vorbei.
http://www.informatikerboard.de
Eine kleine Idee habe ich trotzdem, verwende statt der Entfernung das Quadrat der Entfernung. Dann mußt du die die Punkte suchen, deren Entfernungsqudrat kleiner ist als
.
Das hat den Vorteil, dass du dir das ziehen der Wurzel in deiner Routine ersparen kannst, was etwas Rechenzeit spart.
Rexxos
Verfasst am: 07. Sep 2006 01:15
Titel: Mathematische Frage / Kugelhülle
Hallo Leute !
Habe folgendes Problem:
Ich habe eine Menge aus ca. 2 Mio. Punkten mit gegebenen X,Y,Z Koordinaten (in einer Datenbank). Ich möchte jetzt für einen Punkt A alle Nachbarpunkte innerhalb einer Entfernung von max E einheiten finden.
Gibt es eine schnellere Methode alle Punkte innerhalb einer Kugelhülle zu finden ???
Derzeit gehe ich folgendermassen vor (ich weiss nicht unbedingt elegant aber es funktioniert):
Ich suche alle Punkte die in einem Kubus um meinen Punkt A liegen:
Zitat:
SELECT id FROM PUNKTE
WHERE
(
(X BETWEEN (Position_X-Max_Entfernung) AND (Position_X+Max_Entfernung))
AND (Y BETWEEN (Position_Y-Max_Entfernung) AND(Position_Y+Max_Entfernung))
AND (Z BETWEEN (Position_Z-Max_Entfernung) AND(Position_Z+Max_Entfernung))
)
Aus dieser Ergebnismenge ermittle ich jetzt mit unten stehender Funktion jeweils die Entfernung der entsprechenden Punktes der Erebnismenge zum Punkt A und verwerfe alle Punkte die weiter Als MaxEntfernung entfern sind:
Zitat:
FUNCTION `entfernung`(param1 INTEGER(11), param2 INTEGER(11))
RETURNS double
DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
declare Xa INT;
declare Ya INT;
declare Za INT;
declare Xb INT;
declare Yb INT;
declare Zb INT;
declare ergebnis DOUBLE;
SELECT X,Y,Z into Xa,Ya,Za FROM Punkte WHERE id = param1;
SELECT X,Y,Z into Xb,Yb,Zb FROM Punkte WHERE id = param2;
SELECT ROUND((sqrt( pow((Xa-Xb),2) + pow((Ya-Yb),2) + pow((Za-Zb),2))), 2) INTO ergebnis ;
return ergebnis;
END;