AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie viel Dreiecke siehst du?

Ein Thema von Amateurprofi · begonnen am 24. Sep 2020 · letzter Beitrag vom 25. Sep 2020
Antwort Antwort
Seite 1 von 2  1 2      
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#1

Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 00:47
Auf diese Frage stieß ich neulich.
Nach kurzem Zählen stand für mit fest : 12.
Dann klickte ich zur Lösung und lernte: Es sind 24.
Ich nahm das zum Anlass ein Programm zu schreiben, mit dem man solche Zeichnungen anfertigen und nach 3-, 4-, 5-, ..., N-Ecken suchen kann.
Eine manuelle Prüfung, zumindest für 3- bis 5-Ecke ergab, dass das Programm diese korrekt gefunden hatte.
Es werden konvexe und konkave nicht überschlagende N-Ecke gefunden.
Das Programm incl. Sourcedateien ist im Anhang.
Anregungungen und Kritik sind willkommen.
11-punkte.jpg
Angehängte Dateien
Dateityp: zip CountShapes.zip (2,74 MB, 19x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 11:13
Ich habe dein Programm geladen aber noch nicht gross gecheckt.

Zwei Lösungswege fallen mir für Dreiecke spontan ein:
1. Du nummerierst die Punkte und zählst nun alle möglichen Punktetripel P auf. Das sind in deinem Fall 11 tief 3. Sei G die Menge aller Geraden g, in deinem Fall sind das sieben. Du prüfst für jedes Tripel p=(a,b,c) in P, ob die drei Tupel (a,b), (b,c), (a,c) in drei Geraden g1,g2,g3 liegen. Immer wenn dies der Fall ist, hast du ein Dreieck gefunden.

2. "Schöner" und sehr direkt geht's via Adjanzenzmatrix. In deinem Fall notierst du in einer 11x11 Matrix A, welcher Punkt mit welchem verbunden ist. Wenn du wissen willst über wie viele Wege du von einem Punkt a über zwei Punkte x, y wieder zu a zurück gelangst (Dreieck), dann kannst du dies direkt berechnen; du berechnest einfach A^3.
In der Diagonalen von A^3 kannst du für jeden der 11 Punkte ablesen auf wie viele Arten du von p über zwei Punkte nach p zurück gelangst.
a) Du zählst dabei jedes Dreieck abc mehrfach; in A^3 an den drei Positionen (a,a) [2 Wege abca, acba], (b,b), (c,c) je doppelt.
b) Du willst sicher die Dreiecke ohne Inhalt nicht mitzählen. Wie viele solche Dreiecke gibt es? Liegen auf einer Geraden drei Punkte, dann gibt es ein Dreieck. Liegen auf deiner Geraden vier Punkte, dann gibt es 4 tief 3=4 Dreiecke, bei n Punkten n tief 3. Diese "Dreiecke" zählst du natürlich in der Diagonalen von A^3 mit und musst sie entsprechend subtrahieren.
(Diese Methode funktioniert natürlich nicht nur für dein Beispiel sondern allgemein. Und nebenbei: Wenn in Zeile a, Spalte b von A^3 n steht, dann weisst du, dass du über n Wege von a nach b gelangen kannst.)

https://de.wikipedia.org/wiki/Adjazenzmatrix
Michael Gasser

Geändert von Michael II (24. Sep 2020 um 13:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 11:46
Anregungungen und Kritik sind willkommen.
Deine verbaute Hilfe konnte ich auf Windows 10 nicht öffnen, da ploppt Browser auf mit Verweis das ich WinHlp32.exe brauche, alle Download-Varianten von Microsoft schlagen auf Windows 10 fehl zu installieren.
Da führt mich ein klick auf Hilfe hin.
Von daher meine Frage, wie bedient man das Programm das es nachvollziehbar ist das auf der Grafik 24 Dreiecke sind?
Gruß vom KodeZwerg

Geändert von KodeZwerg (24. Sep 2020 um 11:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 11:54
Im ausgemalten zustand komme ich auch auf 24.
Danke für die Unterhaltung, tut auch mal gut

Im Anhang meine Lösung.

//edit
12 Dreiecke wenn man von standard dreiecken ausgeht.
24 nur wenn eine geometrische form auch mittenmank von Linien durchkreuzt sein darf, sollte man dazu erwähnen...
Angehängte Dateien
Dateityp: 7z dreiecke.7z (91,6 KB, 26x aufgerufen)
Gruß vom KodeZwerg

Geändert von KodeZwerg (24. Sep 2020 um 12:01 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 14:14
was ist "mittenmank"
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 14:21
was ist "mittenmank"
Am besten schau mal in meine "Lösung" rein.
Mit Worte kann ich es nicht gut beschreiben.
Halt ein Dreieck was erst zu einem Dreieck wird wenn man Linien die das Dreieck kreuzen weg-ignoriert.

/edit
Rechtschreibfehler
"mittenmang" mit G hinten wirds geschrieben.
Duden
Gruß vom KodeZwerg

Geändert von KodeZwerg (24. Sep 2020 um 14:31 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 15:20
Danke. Mich hat primär erst mal nur das Wort interessiert - zumal ich mit google nichts brauchbares fand
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 17:27
Ich habe dein Programm geladen aber noch nicht gross gecheckt.

Zwei Lösungswege fallen mir für Dreiecke spontan ein:
1. Du nummerierst die Punkte und zählst nun alle möglichen Punktetripel P auf. Das sind in deinem Fall 11 tief 3. Sei G die Menge aller Geraden g, in deinem Fall sind das sieben. Du prüfst für jedes Tripel p=(a,b,c) in P, ob die drei Tupel (a,b), (b,c), (a,c) in drei Geraden g1,g2,g3 liegen. Immer wenn dies der Fall ist, hast du ein Dreieck gefunden.

2. "Schöner" und sehr direkt geht's via Adjanzenzmatrix. In deinem Fall notierst du in einer 11x11 Matrix A, welcher Punkt mit welchem verbunden ist. Wenn du wissen willst über wie viele Wege du von einem Punkt a über zwei Punkte x, y wieder zu a zurück gelangst (Dreieck), dann kannst du dies direkt berechnen; du berechnest einfach A^3.
In der Diagonalen von A^3 kannst du für jeden der 11 Punkte ablesen auf wie viele Arten du von p über zwei Punkte nach p zurück gelangst.
a) Du zählst dabei jedes Dreieck abc mehrfach; in A^3 an den drei Positionen (a,a) [2 Wege abca, acba], (b,b), (c,c) je doppelt.
b) Du willst sicher die Dreiecke ohne Inhalt nicht mitzählen. Wie viele solche Dreiecke gibt es? Liegen auf einer Geraden drei Punkte, dann gibt es ein Dreieck. Liegen auf deiner Geraden vier Punkte, dann gibt es 4 tief 3=4 Dreiecke, bei n Punkten n tief 3. Diese "Dreiecke" zählst du natürlich in der Diagonalen von A^3 mit und musst sie entsprechend subtrahieren.
(Diese Methode funktioniert natürlich nicht nur für dein Beispiel sondern allgemein. Und nebenbei: Wenn in Zeile a, Spalte b von A^3 n steht, dann weisst du, dass du über n Wege von a nach b gelangen kannst.)

https://de.wikipedia.org/wiki/Adjazenzmatrix
Danke.
So ähnlich wie unter (2) mache ich das.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 17:48
Anregungungen und Kritik sind willkommen.
Deine verbaute Hilfe konnte ich auf Windows 10 nicht öffnen, da ploppt Browser auf mit Verweis das ich WinHlp32.exe brauche, alle Download-Varianten von Microsoft schlagen auf Windows 10 fehl zu installieren.
Da führt mich ein klick auf Hilfe hin.
Von daher meine Frage, wie bedient man das Programm das es nachvollziehbar ist das auf der Grafik 24 Dreiecke sind?
1) Menu > Datei > Figurendatei laden > Neue Datei
"11 Punkte.shp" (Die Datei ist im Anhang enthalten)
Alternativ die Zeichnung selbst erstellen.
2) Menu > Suchen > Dreiecke

In der unteren Listbox sollte dann die Liste der gefundenen Dreiecke stehen.
Tipps:
Mit Menu > Ansicht > "Punkte anzeigen" kannst du einstellen, dass die Eck- / Schnittpunkte in der Zeichnung markiert werden.
Mit Menu > Ansicht > "Nummern der Eckpunkte anzeigen" kannst du einstellen, dass in der Zeichnung die Nummern der Punkte in der Zeichnung ausgegeben werden.
Wenn du in der Liste der gefundenen N-Ecke einen Eintrag linksklickst, wird das betreffende Dreieck in der Zeichnung markiert.
Mit Down/Up kannst du dir die Dreiecke nacheinandern anschauen.
Wenn du in der Liste der gefundenen N-Ecke einen Eintrag rechtsklickst, wird das betreffende Dreieck in der Zeichnung markiert, solange die rechte Maustaste gedrückt ist.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Wie viel Dreiecke siehst du?

  Alt 24. Sep 2020, 17:51
was ist "mittenmank"
Frag mal Tante Google nach "mittenmang" (Mit g am Ende)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz