matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmische GeometrieFinde Sternbilder in 2D Grid
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Algorithmische Geometrie" - Finde Sternbilder in 2D Grid
Finde Sternbilder in 2D Grid < Algorithm. Geometrie < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmische Geometrie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Finde Sternbilder in 2D Grid: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:03 Do 14.08.2014
Autor: ThomasTT

Aufgabe
Nimm an du hast eine Liste von (x,y)-Koordinaten. Nun ist die Aufgabe alle Quadrate (schräg oder gerade) zu finden. Zum Beispiel (2 10), (5 11), (1 13), (4 14) ergibt ein Quadrat, das schräg ist, und (5 5), (10 0), (10 5), (5 0) ist ein Quadrat, welches gerade ist. Quadrate können um jedmöglichen Winkel gedreht sein. Optimale Konvergenz: [mm] N^2 [/mm]

Nehmen wir an wir haben N Koordinaten-Paare. Mein Ansatz ist einen Nx2 Array mit all den (x,y) Koordinaten zu erstellen. Danach schreibe ich eine Schleife, die jeden Punkt durchgeht (von 1 bis N) und in dieser Schleife ist eine weitere die ebenfalls alle Punkte von 1 bis N durchgeht. Mit diesen zwei Punkten kann ich genau feststellen wo die letzten beiden Punkte des Quadrates sein sollten. Daher brauche ich eine weitere Schleife die nochmals alle Punkte von 1 bis N durchgeht, und findet die dritte Schleife während ihres Durchlaufs die beiden verbleibenden Punkte, dann haben wir ein Quadrat gefunden.

Nun das Problem ist, dass ich 3 Schleifen hätte, d.h. [mm] N^3 [/mm] KOnvergenz. Daher frage ich mich, was wäre eine Ansatz dieses Problem auf [mm] N^2 [/mm] zu optimieren.

        
Bezug
Finde Sternbilder in 2D Grid: Antwort
Status: (Antwort) fertig Status 
Datum: 22:06 Do 14.08.2014
Autor: Event_Horizon

Hallo!

Das ist eine interessante Frage, und ich überlege auch schon eine ganze Weile, wie man das auf [mm] N^2 [/mm] runter bekommt, aber ich komm auch nicht drauf.

Aber dein bisheriger Algorithmus läßt sich auch noch optimieren:

Wenn du in der ersten Schleife grade den i. Punkt betrachtest, musst  du in der zweiten Schleife die Punkte j=(i+1)...N und in der dritten nur noch die Punkte k=(j+1)...N betrachten. Sonst prüfst du die Punkte doppelt und dreifach und würdest demnach auch mehr Quadrate finden, als da tatsächlich sind.

Interessant wäre auch, ob jeder Punkt eine Ecke von höchstens einem Quadrat ist. Dann kann man immer alle Punkte, die ein Quadrat bilden, aus der Liste entfernen. Die kürzer werdende Liste ist dann auch schneller zu durchsuchen. Wenn zwei quadrate aber die gleiche Ecke haben, würdest du dem zweiten aber eine Ecke klauen, und das würde nicht erkannt werden.

Bezug
                
Bezug
Finde Sternbilder in 2D Grid: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:05 Do 14.08.2014
Autor: ThomasTT

Ja, deine Hinweise sind in der Tat korrekt. Der letzte Hinweis ist glaube ich nicht praktikabel, da wir diese Annahmen nicht treffen koennen.

Trotzalledem frage ich mich wie man das in zwei Schleifen machen kann. Denn man braucht doch mindestens zwei Schleifen (fuer zwei Eckpunkte eben) damit die verbleibenden zwei Punkte exakt zu bestimmen sind. Und um die verbleibenden Punkte zu prüfen braucht man halt eine dritte Schleife.

Bezug
                        
Bezug
Finde Sternbilder in 2D Grid: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:28 Fr 15.08.2014
Autor: Event_Horizon

Hi!

Ich hab aus deiner zweiten Frage mal eine Mitteilung gemacht - die erste Frage ist ja noch offen.

Das einzige, was mir noch einfätt wäre, wenn man tatsächlich auch das Bild des Sternenhimmels hätte. (So steht es ja im Titel deiner Frage). Dann kann man mit zwei Schleifen zwei Punkte her nehmen, und dann direkt im Bild gucken, ob an den vier oder sechs zu erwartenden Stellen noch ein Stern sitzt. Dann geht das tatsächlich mit N².

Aber ich vermute, der Titel ist eher im übertragenen Sinn gemeint, und es gibt kein Bild vom Sternenhimmel...

Von daher, warten wir mal ab, ob sonst noch wer nen Lösungsvorschlag hat.

Bezug
        
Bezug
Finde Sternbilder in 2D Grid: Antwort
Status: (Antwort) fertig Status 
Datum: 16:10 Sa 16.08.2014
Autor: felixf

Moin!

> Nimm an du hast eine Liste von (x,y)-Koordinaten. Nun ist
> die Aufgabe alle Quadrate (schräg oder gerade) zu finden.
> Zum Beispiel (2 10), (5 11), (1 13), (4 14) ergibt ein
> Quadrat, das schräg ist, und (5 5), (10 0), (10 5), (5 0)
> ist ein Quadrat, welches gerade ist. Quadrate können um
> jedmöglichen Winkel gedreht sein. Optimale Konvergenz:
> [mm]N^2[/mm]
>
>  Nehmen wir an wir haben N Koordinaten-Paare. Mein Ansatz
> ist einen Nx2 Array mit all den (x,y) Koordinaten zu
> erstellen. Danach schreibe ich eine Schleife, die jeden
> Punkt durchgeht (von 1 bis N) und in dieser Schleife ist
> eine weitere die ebenfalls alle Punkte von 1 bis N
> durchgeht. Mit diesen zwei Punkten kann ich genau
> feststellen wo die letzten beiden Punkte des Quadrates sein
> sollten. Daher brauche ich eine weitere Schleife die
> nochmals alle Punkte von 1 bis N durchgeht, und findet die
> dritte Schleife während ihres Durchlaufs die beiden
> verbleibenden Punkte, dann haben wir ein Quadrat gefunden.

Wenn du die dritte Schleife durch eine Abfrage in einer Hash-Tabelle ersetzt, kannst du die Laufzeit auf [mm] $O(N^2)$ [/mm] herunterschrauben: initialisieren der Hash-Tabelle benoetigt $O(N)$ Schritte, und jede Abfrage $O(1)$ Schritte.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmische Geometrie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]