Matroids Matheplanet Forum Index
Moderiert von matroid
Mathematik » Kombinatorik & Graphentheorie » 16 auf einen Streich
Thema eröffnet 2019-06-08 21:40 von haribo
Druckversion
Druckversion
Antworten
Antworten
Seite 1   [1 2 3 4 5 6]   6 Seiten
Autor
Kein bestimmter Bereich 16 auf einen Streich
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.17, eingetragen 2019-06-09


Das ist die Hauptstruktur des Programms
zB NN=16, N=4
C
void main(void) {
 
       for(p0=0;p0<NN;++p0) {       // Schleife für ersten Punkt, separat wg Symmetiebedingungen
	  set_koo(0,p0);
	  if (px[0]>=(N+1)/2 || py[0]>px[0] ) // nur schräge obere Hälfte des 1. Quartals wg Dreh + Spiegelsymetrie
	     continue;
	  besetzt[p0]=1;
	  try_next_point(1); // zweiten (und nächsten) Punkt suchen
	  besetzt[p0]=0;  }
}
 
int try_next_point(int n)  // Versuch für nächsten Punkt des Streckenzuges eine Position zu finden
{
	int i;
	if (n==NN-1) {             // Letzter Punkt: gibt nur noch einen freien Punkt 
	    ... Handling einer ggf gefundenen Lösung 
	    return 0; }
 
	for (i=0; i<NN;++i) {     // Positions-Schleife für den n. Punkt im Streckenzug
	   if (besetzt[i])
	       continue;
	   set_koo(n, i);    // Punkt in globalen Arrays belegen, x,y Werte berechnen und speichern
	   if (strecken(n))  // Test ob der Punkt zulässig ist, insb, zur wievielten Strecke er gehört und ob die Anzahl der Strecken überschritten ist
	       continue;
 
           besetzt[i]=n+1; // Punkt besetzen
	   try_next_point(n+1);   // nächsten Punkt suchen
	   besetzt[i]=0;   // Punkt freigeben
	}
	return 0;
}



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.18, eingetragen 2019-06-09


zur Anzahl der Lösungen abhängig von n
Da die Permutationen (mit n!) stark zunehmen, gehe ich davon aus, dass es bei den Lösungen ebenso ist.
Schon wenn sehe, wieviele Wickellösungen es für große n gibt.
Das gleiche Problem gilt auch für die Laufzeit.
Wie ps71 zur Permutation der Geraden geschrieben hat: "300^8 statt 120^6"  
Dass der Linienzug länger (^8) wird und damit später abgebrochen wird tut der Laufzeit am meisten weh.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.19, eingetragen 2019-06-09


Eine Lösung für nxn:
Für große n x n mit doppelte´n Punkte ober sie ist auch UPS tauglich, Namensvorschlag Schnecke):
Start bei A1 (links oben) (durch den Restpunkt ungefähr in der Mitte, siehe unten) schräg nach unten, denn rechts außen senkrecht nach oben, diagonal durch A2 B1 ganz nach unten, durch die unterste Reihe bis zur vorletzten Spalte, senkrecht nach oben, diagonal durch A3 B2 C1 zur vorletzten Reihe, waagrecht nach rechts und dann nach innerhalb der bisherigen Linie (Dreiecke) weiter nach innen. Ein Punkt bleibt übrig, durch den geht die erste Diagonale.
Für n=3: A1 B2 C3, C2 C1+, A2 B1+, C1 C2.
Für n=4 A1 C2 +, D4 C4 B4 A4 +, A2 B1+, D1 D2 D3, C3 B3 A3, B2 A3
Für n=5 A1 C2 +, E5 B5 C5 B5 A5 +, A2 B1+, E1 E2 E3 E4, D4 C4 B4 A4+, A3 B2 C1+, D1 D2 D3, C3 B2
Die Position vom zweiten Punkt ist x =(n+3)/3 y=(n+5)/3 jeweils abgerundet. Damit ist auch klar, dass es bei hohen Zahlen keine einmalige Lösung ist. zB n=29 x=10, y=11.
Da geht schon schön schief durch, ist aber relativ weit am Anfang, so dass es nach der doppelten Entfernung (x=19, y=21) immer noch innerhalb des Gitters ist und dort eine Kreuzung mit einem schon belegten Punkt hat.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6996
Wohnort: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.20, eingetragen 2019-06-09


Sorry, dass ich kurz dazwischenfunke 😉

@Haribo #0: Für mich sind A9 und B14 im wesentlichen dieselben Lösungen, bzw. man könnte den Rundweg aus A9 (inkl. der beiden weißen Kanten) noch an anderen Stellen aufbrechen um neue Lösungen zu erhalten.

@Haribo #6: Hast du eine Quelle für die 136?

Grüße
StrgAltEntf

[Die Antwort wurde nach Beitrag No.18 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.21, eingetragen 2019-06-09


2019-06-09 22:32 - StrgAltEntf in Beitrag No. 20 schreibt:
Sorry, dass ich kurz dazwischenfunke 😉

@Haribo #0: Für mich sind A9 und B14 im wesentlichen dieselben Lösungen, bzw. man könnte den Rundweg aus A9 (inkl. der beiden weißen Kanten) noch an anderen Stellen aufbrechen um neue Lösungen zu erhalten.
...

[Die Antwort wurde nach Beitrag No.18 begonnen.]

Nein, alle andern möglichen Unterbrechungen lassen sich auf diese Beiden durch Drehung/Spiegelung/Rückwärts abbilden.
Es gibt nur die Unterbrechung an der spitzen (A9) oder breiteren (B14) Ecke.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6996
Wohnort: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.22, eingetragen 2019-06-09


2019-06-09 22:44 - Baeumler16 in Beitrag No. 21 schreibt:
2019-06-09 22:32 - StrgAltEntf in Beitrag No. 20 schreibt:
Sorry, dass ich kurz dazwischenfunke 😉

@Haribo #0: Für mich sind A9 und B14 im wesentlichen dieselben Lösungen, bzw. man könnte den Rundweg aus A9 (inkl. der beiden weißen Kanten) noch an anderen Stellen aufbrechen um neue Lösungen zu erhalten.

Nein, alle andern möglichen Unterbrechungen lassen sich auf diese Beiden durch Drehung/Spiegelung/Rückwärts abbilden.
Es gibt nur die Unterbrechung an der spitzen (A9) oder breiteren (B14) Ecke.

Hm ... man könnte doch aber auch etwa die Kante (2|2)-(3|3) aus dem Rundweg weglassen. Das wäre dann m. E. eine andere Lösung.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.23, eingetragen 2019-06-09




Hm ... man könnte doch aber auch etwa die Kante (2|2)-(3|3) aus dem Rundweg weglassen. Das wäre dann m. E. eine andere Lösung.
Dann wären es aber nicht mehr 6 sondern 7 Strecken



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6996
Wohnort: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.24, eingetragen 2019-06-09


2019-06-09 23:27 - Baeumler16 in Beitrag No. 23 schreibt:


Hm ... man könnte doch aber auch etwa die Kante (2|2)-(3|3) aus dem Rundweg weglassen. Das wäre dann m. E. eine andere Lösung.
Dann wären es aber nicht mehr 6 sondern 7 Strecken

Ja, jetzt, wo du es sagst  😉

Danke!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.25, eingetragen 2019-06-09


Zur Sortierung und Auswahl:
Eine eindeutige Regel wäre nach Punkten zu sortieren. D.h zuerst alle die mit A1 anfangen, dann die mit A2... Für die nachfolgenden Punkte könnte man die gleiche Regel anwenden. Zuest die mit einem kleineren Punkt.
Wenn man die Punkte nach Reihen sortiert (Also nach A4 B1 B2 B3 B4 C1 ...)
kommt man zu einer anderen Reihenfolge und Auswahl. Beim Stern A9 würde man zuerst unten links abbiegen, also durch C4 A3 wieder nach oben.
Die Auswahl wäre dadurch auch betroffen, weil ein späteres aber gleiches (Drehung... ) nicht angezeigt würde.


[Die Antwort wurde nach Beitrag No.23 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.26, eingetragen 2019-06-10


Leider ist die Fortschrittsgeschwindigkeit nach den ersten Ergebnissen ziemlich geschrumpft. Nach 16h habe ich 102 Lösungen.
102. Lösung: A1 A2 A3 A4, C4 E3, E2 C1, B1 C2 D3 E4, E5 D5 C5 B5 A5, B4 C3 D2 E1, D1 B2, B3 D4
Die Lösung sollte eigentlich nicht erscheinen, weil der Punkt A5 doppelt erreicht wird: Sowohl direkt als auch in der Verlängerung A3 A4 auf C4 E3.
Da ist wohl ein Fehler im Programm.

 
1) Ich würde gerne die 103 Zeilen Zwischenergebnis hier einstellen. Kann man eine Textdatei erstellen, oder soll ich es als Forumsbeitrag posten, oder extern hochladen und hier verlinken?
Oder hilft es nicht weiter?

2) Ist es eine Option, eine solche Rechenaufgabe auf einem schnelleren Rechner laufen zu lassen (AWS, etc), frei nach dem Motto: It brute force doesn't help you are using not enough of it!
Hat jemand damit Erfahrungen?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.27, eingetragen 2019-06-10


Moin ;)

Hier zunächst eine Zwischeninventur:



Ordnung ähnlich [haribo] und [Baeumler16],
bloß dass bei mir für die gerichtete Darstellung
ggf. dreh- und/oder spiegelsymmetrischer Figuren
der Eckpunkt unten links bevorzugter Startpunkt ist.

Einschub: Mein noch zu entwickelnder Algorithmus wird diesen Punkt
auf Position (1;1) des kartesischen Koordinatensystems setzen...

Die oberen drei Figuren lassen sich aus [haribo]s "A8"
(inoffizielle Kategorie "K12" im SPON-Forum) ableiten - siehe Anfangsbeitrag.
Zum ganz linken gibts sogar eine Zeichenanleitung bei DuRöhre
- Suchbegriff "25 punkte mit 8 strichen".
Die ganz linke in der Mittelreihe hatte [haribo] oben vorgestellt.
Die anderen dort lassen sich ebenfalls aus 4x4-Lösungen ableiten.
Von den "Ambossen" unten ist der ganz linke der aus meinem
vorherigen Beitrag, und die anderen beiden sind mir gestern Abend eingefallen.
Mein Bauch suggeriert, dass es von solchen "Ambossen" noch mehr geben sollte...

In meinem nächsten Beitrag möchte ich dann
- wohl als eine Art weiteren Spickzettel -
verschiedene von den 4x4-Lösungen vorstellen,
die mein Verständnis von "unterschiedlich echt"
aufzeigen sollen...

Danach dann weiter zur Algorithmik ;)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
StrgAltEntf
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 19.01.2013
Mitteilungen: 6996
Wohnort: Milchstraße
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.28, eingetragen 2019-06-10


2019-06-10 10:43 - Baeumler16 in Beitrag No. 26 schreibt:
1) Ich würde gerne die 103 Zeilen Zwischenergebnis hier einstellen. Kann man eine Textdatei erstellen, oder soll ich es als Forumsbeitrag posten, oder extern hochladen und hier verlinken?
Oder hilft es nicht weiter?

Hallo Baeumler16,

verlinken ist immer schlecht. Du kannst es etwa in einen Show-Bereich verpacken, vielleicht mit einer kleinen Warnnug. So:
103 Zeilen Zwischergebnis
Hier dann die Zwischenergebnisse




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.29, eingetragen 2019-06-10


Ich wäre sehr stark dafür, dass wir uns auf eine Nomenklatur einigen.
Wg mir können wir A1 auch nach links unten legen. Koordinaten dort sollten aber (0,0) sein.
Ich habe die Bezeichnung von Gast237 übernommen und fand es befremdlich, wenn später hinzugekommene einr zusätzliche neue Nomenklatur einfügen wollten.

@Uli wie malst du?
Ich überlege ob ich einen "A1.." zu Html oder Bild Konverter schreiben soll.
Hast du schon so etwas (inkl. gelb für Abbiegepunkte)?

PS:jcsahnwaldt hat in seinem html auch links oben (0,0)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.30, eingetragen 2019-06-10


@StrgAltEntf  vielen Dank für den Hinweis!
102 Zeilen Zwischergebnis (ggf. mit unzulässigen doppelt erreichten Punkten)
   1. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 D2 D3 D4 D5, C3 B1, B2 C5, E5 E4 E3 E2 E1, C2 B4, B5 C4
   2. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 D2 D3 D4 D5, C5 B2, B1 C3, C4 B5, B4 C2, E1 E2 E3 E4 E5
   3. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 D2 D3 D4 D5, C5 B5, B4 C3, C2 B1, B2 C4, E5 E4 E3 E2 E1
   4. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 E2, E3 D4, C4 B2, B1 C2 D3 E4, E5 D5 C5 B5, B4 C3 D2 E1
   5. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 E3, E4 D3 C2 B1, B2 C4, D4 E2, E1 D2 C3 B4, B5 C5 D5 E5
   6. Lösung: A1 A2 A3 A4 A5, B3 C1, D1 E3, E5 D5 C5 B5, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4
   7. Lösung: A1 A2 A3 A4 A5, B3 C1, E1 E2 E3 E4 E5, C4 B2, B1 C2, C3 B4, B5 C5 D5, D4 D3 D2 D1
   8. Lösung: A1 A2 A3 A4 A5, B3 C1, E1 E2 E3 E4 E5, C5 B2, B1 C3, C4 B5, B4 C2, D1 D2 D3 D4 D5
   9. Lösung: A1 A2 A3 A4 A5, B3 C1, E1 E2 E3 E4 E5, C5 B2, B1 C3 D5, D4 D3 D2 D1, C2 B4, B5 C4
  10. Lösung: A1 A2 A3 A4 A5, B4 C3, C2 B1, B2 C4, E5 E4 E3 E2 E1, C1 B3, B5 C5 D5, D4 D3 D2 D1
  11. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, D1 B2, B3 C4, D4 E3, E2 C1, B1 C2 D3 E4, E5 D5 C5 B5
  12. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, D1 B2, B3 D4, E4 D3 C2 B1, C1 E2, E3 C4, B5 C5 D5 E5
  13. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, D1 B2, B3 D4, E4 D3 C2 B1, C1 E2, E5 D5 C5 B5, C4 E3
  14. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, D1 B2, B3 D4, E5 D5 C5 B5, C4 E3, E2 C1, B1 C2 D3 E4
  15. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4, E3 D1, C1 B3, B5 C5 D5 E5
  16. Lösung: A1 A2 A3 A4 A5, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4, E5 D5 C5 B5, B3 C1, D1 E3
  17. Lösung: A1 A2 A3 A4 A5, B5 C2, D1 D2 D3 D4, C4 B4, B3 C1, E1 E2 E3 E4 E5, C5 B2, B1 C3 D5
  18. Lösung: A1 A2 A3 A4 A5, B5 C2, D1 D2 D3 D4, C4 B4, B3 C1, E1 E2 E3 E4 E5, D5 C3 B1, B2 C5
  19. Lösung: A1 A2 A3 A4 A5, B5 C2, D1 D2 D3 D4 D5, C3 B1, B2 C5, E5 E4 E3 E2 E1, C1 B3, B4 C4
  20. Lösung: A1 A2 A3 A4 A5, B5 C2, D1 D2 D3 D4 D5, C5 B2, B1 C3, C4 B4, B3 C1, E1 E2 E3 E4 E5
  21. Lösung: A1 A2 A3 A4 A5, B5 C2, E1 E2 E3 E4 E5, C5 B2, B1 C3, C4 B4, B3 C1, D1 D2 D3 D4 D5
  22. Lösung: A1 A2 A3 A4 A5, B5 C2, E1 E2 E3 E4 E5, C5 B2, B1 C3 D5, D4 D3 D2 D1, C1 B3, B4 C4
  23. Lösung: A1 A2 A3 A4 A5, B5 C3, C2 B1, B2 C4, D5 D4 D3 D2 D1, C1 B3, B4 C5, E5 E4 E3 E2 E1
  24. Lösung: A1 A2 A3 A4 A5, B5 C3, C2 B1, B2 C4, E5 E4 E3 E2 E1, C1 B3, B4 C5, D5 D4 D3 D2 D1
  25. Lösung: A1 A2 A3 A4 A5, B5 C3 D1, D2 D3 D4 D5, C5 B4, B3 C1, E1 E2 E3 E4 E5, C4 B2, B1 C2
  26. Lösung: A1 A2 A3 A4 A5, B5 C3 D1, E1 E2 E3 E4 E5, D5 B2, B1 C2 D3, D4 C4 B4, B3 C1, D2 C5
  27. Lösung: A1 A2 A3 A4 A5, B5 C4 D3, D2 C1, B1 B2 B3 B4, C5 D5, D4 C3, C2 D1, E1 E2 E3 E4 E5
  28. Lösung: A1 A2 A3 A4 A5, B5 C4 D3, D2 C1, B1 B2 B3 B4, C5 D5, E4 E3 E2 E1, D1 C2, C3 D4 E5
  29. Lösung: A1 A2 A3 A4 A5, B5 C4 D3, D2 C1, B1 B2 B3 B4, C5 D5 E5, D4 C3, C2 D1, E1 E2 E3 E4
  30. Lösung: A1 A2 A3 A4 A5, B5 C4 D3, D2 C1, B1 B2 B3 B4, C5 D5 E5, E4 E3 E2 E1, D1 C2, C3 D4
  31. Lösung: A1 A2 A3 A4 A5, B5 C5 D5, D4 D3 D2 D1, C1 B3, B4 C3, C2 B1, B2 C4, E5 E4 E3 E2 E1
  32. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, D3 C1, B1 B2 B3, C2 D1, E1 E2 E3 E4, D4 C4 B4, C3 D2
  33. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, D4 B3, B2 D1, E1 D2 C3 B4, C4 E3, E2 C1, B1 C2 D3 E4
  34. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E2 C1, B1 C2 D3 E4, D4 B3, B2 D1, E1 D2 C3 B4, C4 E3
  35. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E3 D1, C1 B3, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4
  36. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E3 D2 C1, D1 E1, E2 C3, B3 B2 B1, C2 D3 E4, D4 C4 B4
  37. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 D3 C2 B1, B2 C4, D4 E2, E1 D2 C3 B4, B3 C1, D1 E3
  38. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 D3 C2 B1, B2 C4, D4 E3, E2 D1, C1 B3, B4 C3 D2 E1
  39. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 D3 C2 B1, C1 E2, E3 C4, B4 C3 D2 E1, D1 B2, B3 D4
  40. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 D3 C2 B1, C1 E2, E3 D4, C4 B3, B2 D1, E1 D2 C3 B4
  41. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 E3 E2 E1, D1 C2 B3, B2 B1, C1 D3, D4 C4 B4, C3 D2
  42. Lösung: A1 A2 A3 A4 A5, B5 C5 D5 E5, E4 E3 E2 E1, D2 C3 B4, C4 D4, D3 C1, B1 B2 B3, C2 D1
  43. Lösung: A1 A2 A3 A4 A5, C4 D1, C1 B2, B3 D4, E5 D5 C5 B5, B4 C3 D2 E1, E2 E3 E4, D3 C2 B1
  44. Lösung: A1 A2 A3 A4 A5, C4 D1, E1 E2 E3 E4 E5, D4 C1, B1 B2 B3 B4 B5, C5 D3, D2 C2, C3 D5
  45. Lösung: A1 A2 A3 A4 A5, C4 D1, E1 E2 E3 E4 E5, D4 C2, C1 D2, D3 C5, B5 B4 B3 B2 B1, C3 D5
  46. Lösung: A1 A2 A3 A4 A5, C4 D1, E1 E2 E3 E4 E5, D5 C3 B1, B2 B3 B4 B5, C5 D3, D2 C1, C2 D4
  47. Lösung: A1 A2 A3 A4 A5, C4 D1, E1 E2 E3 E4 E5, D5 C3, C2 D2, D3 C5, B5 B4 B3 B2 B1, C1 D4
  48. Lösung: A1 A2 A3 A4 A5, C4 D2, D1 C1, C2 D4, E5 E4 E3 E2 E1, D3 C5, B5 B4 B3 B2 B1, C3 D5
  49. Lösung: A1 A2 A3 A4 A5, C4 D2, D1 C2, C3 D4 E5, D3 C1, B1 B2 B3 B4 B5, C5 D5, E4 E3 E2 E1
  50. Lösung: A1 A2 A3 A4 A5, C4 D2, D1 C2, C3 D4 E5, D5 C5 B5, B4 B3 B2 B1, C1 D3, E4 E3 E2 E1
  51. Lösung: A1 A2 A3 A4 A5, C4 D2, D1 C2, C3 D4 E5, E4 E3 E2 E1, D3 C5, B5 B4 B3 B2 B1, C1 D5
  52. Lösung: A1 A2 A3 A4 A5, C4 D2, D1 C2, C3 D5, E5 E4 E3 E2 E1, D3 C5, B5 B4 B3 B2 B1, C1 D4
  53. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4, D3 C1, B1 B2 B3 B4 B5, C5 D5 E5, D4 C3, C2 D1
  54. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4, D5 C5 B5, B4 B3 B2 B1, C1 D3 E5, D4 C3, C2 D1
  55. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4 E5, D3 C1, B1 B2 B3 B4 B5, C5 D5, D4 C3, C2 D1
  56. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4 E5, D4 C2, C1 D1, D3 C5, B5 B4 B3 B2 B1, C3 D5
  57. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4 E5, D5 C3 B1, B2 B3 B4 B5, C5 D3, D1 C1, C2 D4
  58. Lösung: A1 A2 A3 A4 A5, C4 D2, E1 E2 E3 E4 E5, D5 C5 B5, B4 B3 B2 B1, C1 D3, D4 C3, C2 D1
  59. Lösung: A1 A2 A3 A4 A5, C4 E3, E2 C1, B1 C2 D3 E4, D4 B3, B2 D1, E1 D2 C3 B4, B5 C5 D5 E5
  60. Lösung: A1 A2 A3 A4 A5, C4 E3, E2 C1, B1 C2 D3 E4, E5 D5 C5 B5, B4 C3 D2 E1, D1 B2, B3 D4
  61. Lösung: A1 A2 A3 A4 A5, C5 D1, E1 E2 E3 E4 E5, D4 C1, B1 B2 B3 B4 B5, C4 D3, D2 C2, C3 D5
  62. Lösung: A1 A2 A3 A4 A5, C5 D1, E1 E2 E3 E4 E5, D4 C2, C1 D2, D3 C4 B5, B4 B3 B2 B1, C3 D5
  63. Lösung: A1 A2 A3 A4 A5, C5 D1, E1 E2 E3 E4 E5, D5 C3 B1, B2 B3 B4 B5, C4 D3, D2 C1, C2 D4
  64. Lösung: A1 A2 A3 A4 A5, C5 D1, E1 E2 E3 E4 E5, D5 C3, C2 D2, D3 C4 B5, B4 B3 B2 B1, C1 D4
  65. Lösung: A1 A2 A3 A4 A5, C5 D2, C1 B3, B4 C4 D4, D3 C2 B1, B2 D5, E5 E4 E3 E2 E1, D1 C3 B5
  66. Lösung: A1 A2 A3 A4 A5, C5 D3, D1 C1, C2 D4, E5 E4 E3 E2 E1, D2 C4, B5 B4 B3 B2 B1, C3 D5
  67. Lösung: A1 A2 A3 A4 A5, C5 D3, D2 C1, C2 D4, E5 E4 E3 E2 E1, D1 C4, B5 B4 B3 B2 B1, C3 D5
  68. Lösung: A1 A2 A3 A4 A5, C5 D3, D2 C2, C3 D5, E5 E4 E3 E2 E1, D1 C4, B5 B4 B3 B2 B1, C1 D4
  69. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 D5, B5 B4 B3 B2 B1, D1 E3, E4 D4 C4, C3 C2 C1, D2 E5
  70. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D4 C1, B1 B2 B3 B4 B5, C4 D2, D1 C2, C3 D5
  71. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D4 C2, C1 D1, D2 C4, B5 B4 B3 B2 B1, C3 D5
  72. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D4 C3, C2 D1, D2 C4, B5 B4 B3 B2 B1, C1 D5
  73. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D5 C1, B1 B2 B3 B4 B5, C4 D2, D1 C2, C3 D4
  74. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D5 C3 B1, B2 B3 B4 B5, C4 D2, D1 C1, C2 D4
  75. Lösung: A1 A2 A3 A4 A5, C5 D3 E1, E2 E3 E4 E5, D5 C3, C2 D1, D2 C4, B5 B4 B3 B2 B1, C1 D4
  76. Lösung: A1 A2 A3 A4 A5, C5 D4, D3 C1, B1 B2 B3 B4 B5, C4 D1, E1 E2 E3 E4 E5, D5 C3, C2 D2
  77. Lösung: A1 A2 A3 A4 A5, C5 D4, D3 C1, B1 B2 B3 B4 B5, C4 D2, E1 E2 E3 E4 E5, D5 C3, C2 D1
  78. Lösung: A1 A2 A3 A4 A5, C5 D4 E3, E1 D1 C1 B1, B2 B3 B4 B5, C4 D3 E2, D2 C2, C3 D5, E5 E4
  79. Lösung: A1 A2 A3 A4 A5, C5 D4 E3, E4 E5, D5 C3 B1, C1 D1 E1, E2 D3 C4 B5, B4 B3 B2, C2 D2
  80. Lösung: A1 A2 A3 A4 A5, C5 D4 E3, E4 E5, D5 C3, C2 D2 E2, D3 C4 B5, B4 B3 B2 B1, C1 D1 E1
  81. Lösung: A1 A2 A3 A4 A5, D5 E2, E1 D3 C5, B5 B4 B3 B2 B1, D1 E3, E4 D4 C4, C3 C2 C1, D2 E5
  82. Lösung: A1 A2 A3 A4, B3 C1, D1 E2, E3 D4, C4 B2, B1 C2 D3 E4, E5 D5 C5 B5 A5, B4 C3 D2 E1
  83. Lösung: A1 A2 A3 A4, B3 C1, D1 E3, E5 D5 C5 B5 A5, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4
  84. Lösung: A1 A2 A3 A4, B3 C1, E1 E2 E3 E4 E5, C4 B2, B1 C2, C3 B4 A5, B5 C5 D5, D4 D3 D2 D1
  85. Lösung: A1 A2 A3 A4, B3 C2 D1, C1 B1, B2 C4, E5 E4 E3 E2 E1, D2 C3 B4 A5, B5 C5 D5, D4 D3
  86. Lösung: A1 A2 A3 A4, B3 C2 D1, E1 E2 E3 E4 E5, C4 B1, C1 D2, D3 B4, A5 B5 C5 D5, D4 C3 B2
  87. Lösung: A1 A2 A3 A4, B4 C3, C2 B1, B2 C4, E5 E4 E3 E2 E1, C1 B3 A5, B5 C5 D5, D4 D3 D2 D1
  88. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 B2, A5 B5 C5 D5 E5, E4 D3 C2 B1, C1 E2, E3 D4, C4 B3
  89. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 B2, B3 C4, D4 E3, E2 C1, B1 C2 D3 E4, E5 D5 C5 B5 A5
  90. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 B2, B3 D4, E4 D3 C2 B1, C1 E2, E5 D5 C5 B5 A5, C4 E3
  91. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 B2, B3 D4, E5 D5 C5 B5 A5, C4 E3, E2 C1, B1 C2 D3 E4
  92. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 C1 B1, B2 C4, D4 E3, E2 B3, A5 B5 C5 D5 E5, E4 D3 C2
  93. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, D1 C1 B1, C2 D3 E4, E5 D5 C5 B5 A5, B3 E2, E3 D4, C4 B2
  94. Lösung: A1 A2 A3 A4, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4, E5 D5 C5 B5 A5, B3 C1, D1 E3
  95. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, D4 B3, B2 D1, E1 D2 C3 B4 A5, C4 E3, E2 C1, B1 C2 D3 E4
  96. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E2 C1, B1 C2 D3 E4, D4 B3, B2 D1, E1 D2 C3 B4 A5, C4 E3
  97. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E3 D1, C1 B3 A5, B4 C3 D2 E1, E2 D4, C4 B2, B1 C2 D3 E4
  98. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E4 D3 C2 B1, B2 C4, D4 E2, E1 D2 C3 B4 A5, B3 C1, D1 E3
  99. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E4 D3 C2 B1, B2 C4, D4 E3, E2 D1, C1 B3 A5, B4 C3 D2 E1
 100. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E4 D3 C2 B1, C1 E2, E3 C4 A5, B4 C3 D2 E1, D1 B2, B3 D4
 101. Lösung: A1 A2 A3 A4, B5 C5 D5 E5, E4 D3 C2 B1, C1 E2, E3 D4, C4 B3, B2 D1, E1 D2 C3 B4 A5
 102. Lösung: A1 A2 A3 A4, C4 E3, E2 C1, B1 C2 D3 E4, E5 D5 C5 B5 A5, B4 C3 D2 E1, D1 B2, B3 D4




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.31, eingetragen 2019-06-10


zu meiner 102 Lösung und zur Nummer der 3, 5, 6, 7 von aus Beitrag No.27:
Jeder der 4x4 Lösungen, bei der der ein äußerer Punkt die Anfang- oder Endstrecke erreichbar ist kann man durch ein entsprechendes L außenrum zu einer 5x5 Lösung erweitert werden. In den meisten Fällen entstehen dabei doppelte Punkte aber nicht immer.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.32, eingetragen 2019-06-10


Aus dem Fisch kann man noch weitere Varianten (= Lösung 11 in Beitrag 30)  machen:


Bildcode im jcsahnwaldt html
solution(120, ['Fisch'],
  300, 330, 60, 80,
  [[3,4],[-1,4],[4,-1],[-0.66,1.33],[1.5,3.5], [3.66,1.33],[-1,-1],[4,4], [4,0]],
  ''
);



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.33, eingetragen 2019-06-10


Schöner Fisch ;)

Wie angekündigt im folgenden erstmal zur Vorgeschichte:



Die oberen beiden 4x4-Lösungen zeigen wohl auf, was [haribo],
[Baeumler16] und ich unter einer "echten" Lösung verstehen.
Der Rest erscheint mir als Semantik - wenn auch die beiden Lösungen
unten links für Betrachtungen zur Entwicklung der Mächtigkeit von Teillösungsräumen bei größeren Rastern interessant sein könnten...

So, jetzt sollten auch Neuinteressenten gebrieft (steht tatsächlich
schon im Duden - ts) sein und genügend veritable "Spicker"
für eigene Lösungen haben ;)

Mehr zur Algorithmik in Kürze...



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.34, eingetragen 2019-06-10


Hat jemand eine Idee wie man beweisen könnte, dass man gegenüber den trivialen 2n-1 Lösungen (zB quadratische Kringel nach innen oder waagrecht bis zum Ende, eins nach unten, wieder zurück...) genau eine Linie sparen kann und nicht mehr?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.35, eingetragen 2019-06-10


N'Aaam'd ;)

Mitten im Multitasking-Werkeln zwischen Antwortentwürfen zu E-Mails,
topologisch katalogisierter Aufbereitung der 4x4-Ergebnisse,
Skizzieren algorithmischer Ansätze und Zwischenerkenntnisse
sowie Nahrungsaufnahme, Privattelefonaten etc.
habe ich nebenher spaßeshalber mit der Goggel-Bildersuche
und dem Suchziel "16 dots 6 lines" interessantes gefunden:



Auch der schöne Stern aus den 4x4-Lösungen ist übrigens so zu finden...

Die beiden hier zeigen auf, welch schöne Symmetrien es geben kann,
welch interessante Abbiegestellen, welch aberwitzig anmutenden Muster etc.

Als Anregung bei der Eigensuche nach 5x5-Lösungen taugen die beiden,
vielleicht sogar später als eine Art "Eichfiguren"
beim Ausbau eines Algorithmus (findet er die dann?),
jedoch bin ich geneigt, Dir zuzustimmen, Bäumler,
dass eine Vorab-Figurensammlung für den Algorithmus weniger zwingend ist.
Erstens "sieht" ein Automat die Figuren nicht so wie wir,
und zweitens war der Fall bei den 4x4-Resultaten genau der umgekehrte:
der Algorithmus hat uns "gezeigt", was wir alle "übersehen" hatten ;)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.36, vom Themenstarter, eingetragen 2019-06-10


herzlich willkommen auf diesem planeten, ihr beiden und andere!!!
ihr tummelt euch ja schon in gewohnter unordnung, sehr gut

meine anordnung des A1 feldes oben links entspricht bäumler (und excel!) aber da wir jetzt bilder einstellen können finde ich es momentan (auch) zweitrangig wie die feldbezeichnungen sind, (zeichnet man eine A1...XY anleitung in einem anderen koordinatenanordnung wird es halt gespiegelt oder gedreht)(ein schachbrett hätte aus sicht des weissen spielers zwar die A1 unten links aber die zeilen als zahl...also auch gespiegelte ergebnisse beim eintragen)

baeumler kannst du dein program leicht für 9x9 benutzen?... nur bis du die ersten paar ergebnisse hast, denn bisher scheitern alle meine wickelversuche bei dieser grösse, also genau bei 9x9 haben sie das erste mal doppelt besuchte punkte:


haribo






Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.37, eingetragen 2019-06-10


;)

haribo, mich deucht, das fällt in einen bereich,
den ich bereits einmal angedeutet habe:
"primzahl-" vs. "gerade" vs. "ungerade nicht-primzahl"
-raster usw. möglicherweise muss ja noch "quadratzahl"
-raster dazu. siehe 4x4 - da funktioniert das wickeln
ja abweichend nicht zum zentrum hin, sondern quer durch
und mit knick zurück auf die außenseite...
mein "amboss" sieht im 5x5 und 6x6 auch merkwürdig anders aus
als im 4x4 - mal kreuzen die hauptdiagonalen einander
im mittelpunkt, mal nicht, mal gibt es die, mal andere
möglichkeiten, unterwegs zwischen punkten rechtwinklig
abzubiegen oder dabei zwischen steigungen zu wechseln.

trost: beim 10x10 schneckt die funze wieder ;)
grad von hand probiert!
meine ahnung: bis zum 15er klappts - der 16er bockt...

ihr elenden vorprescher!

soll der algorithmus, der ja schon toll EFFEKTIV ist,
doch erst mal NOCH EFFIZIENTER werden, damit er hoffentlich
auch NOCH schneller wird und die größeren dann packt!

wird schon ;)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.38, vom Themenstarter, eingetragen 2019-06-10


2019-06-10 21:16 - cramilu in Beitrag No. 37 schreibt:
meine ahnung: bis zum 15er klappts - der 16er bockt...

wird schon ;)

nene, es ist die sechserreihe 9;15;21...(m*6+3) bei der es doppelte gibt

aber bitte gaaaaanz ruhig angehen lassen, das weltall breitet sich sowiso schneller aus als unsere ideen

haribo



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.39, eingetragen 2019-06-10


das weltall mag sich mit lichtgeschwindigkeit ausbreiten
und ungeachtet ALL unserer ideen,
aber ohne unsere ideen wüssten wir nichts davon...
ich breite jetzt was anderes aus,
nämlich geschirr, besteck und schüssel
mit balkan-wurstsalat...
... und wenig später die flauschige bettdecke.
gute nacht, hari-boy ;)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.40, eingetragen 2019-06-10


Der Algorithmus wird ja schon bei 5x5 nicht fertig, da brauchen wir mit 9x9 gar nicht anfangen, ohne drastische Nebenbedingungen einzufügen wie "Strecke immer weiter bis kein freier Punkt mehr da"

PS ich habe versucht mein Algorithmus etwas aufzubohren, auf dass er auch die mit doppelten Punkten ausgeben soll.
Lt thom3 sollen das insgesamt 41 sein. Ich habe 100 und bin zu faul zum aufmalen und die doppelten suchen und schreibe deshalb einen 'A1 B2, ...' zu HTML / Bild Generator.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.41, vom Themenstarter, eingetragen 2019-06-11


ich dachte dein program liefert die ersten paar halbwegs schnell, darum die nachfrage nach 9 x 9...

stimmt händisch überprüfen is etwas aufwendig, hier "baeum 1-6 aus #30"
da sind schon 4mal doppelte drin, du müsstest die ver-schnittpunkte mit in die auflistung nehmen, zumindest wenn sie auf ganzzahligen plätzen innerhalb des n x n feldes liegen, dann würden doppelte doch sofort erkannt


also die markierte A5 als verschnittpunkt zwischen
E5 D5 C5 B5,via [A5], B4 C3 D2 E1,im 6. beispiel

ich hab aber wenig ahnung wie sehr dir das dein program verkomplizieren würde

1+2 liegen auf der gleichen k-gruppe
haribo





Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Benutzertheo
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 08.07.2018
Mitteilungen: 27
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.42, eingetragen 2019-06-11


Hallo,

kannst du den Algorithmus besser beschreiben?

Grüße



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.43, eingetragen 2019-06-11


So?
Quelltext meines Programms
C
#include <stdio.h>
#include <time.h>
// https://www.onlinegdb.com/online_c_compiler
/*
   2*2=4  SMAX=3 1.33
   3*3=9  SMAX=4 2.25
   4*4=16 SMAX=6 2.66
   5*5=25 SMAX=8 3.125 */
 
/* neuner Rätsel
 0 1 2
 3 4 5
 6 7 8 */
// Einzige Lösung: 0 4 8, 5 2+, 1 3+, 6 7
 
/* sechzehner Rätsel
 0  1  2  3
 4  5  6  7
 8  9  10 11
 12 13 14 15
 
 1. Lösung: A1 A2 A3 A4, B3 C1, D1 D2 D3 D4, C4 B2, B1 C2, C3 B4
             0  1  2  3 , 6 8+, 12 13 14 15+,11 5+, 4  9+, 10 7
25er Rätsel
 Eine Lösung A1 C2, E5 D5 C5 B5 A5, A2 B1, E1,E2 E3 E4, D4 C4 B4 A4, A3 B2 C1, D1 D2 D3, C3 B3
             0  11 ,24 19 14 9  4 , 1  5,  20 21 22 23, 18 13 8  3,  2  6  10  15 16 17, 12 7
 */
 
#define N 4		                /* Anzahl der Punkte */
#define WU_N 4                  /* Seitenlänge = Wurzel N */
#define SMAX (2*(WU_N-1))		/* Anzahl der Strecken  bei 3*3=9 4, bei 4*4=16 6, bei 5*5=25 8*/
#define LOE_MAX 220             /* Speicherbegrenzung für Lösungsarray */
 
int p0;
int p[N], px[N],py[N];     // Positionen , x, und y Koordinaten des N. Punktes auf der Streckenkette
int ns[N];                 // der Streckenabschnitt zu diesem Punkt ist Bestandteil der x. Strecke
int besetzt[N];
int grund;
 
// int stop[]={0,11,24,19,14,9,4,1,5,20,21,22,23,18,13,8,3,2,6,10,15,16,17,12,7}; // Eine Lösung für debug Zwecke
 
int n_loesung=0;
int loe[150][N];   // Speicher für Lösungen
 
void drucken(int n)
{
  int i;
  if (n==N-1)
     printf(  "%4d. Lösung: ",n_loesung );
  else if (n<N-1)
     printf(  "Lösungteil bis Punkt %d:",n);
  else {
	 int r,loesung, spiegel, rueck;
	 loesung=n/32;
	 r=n-32*loesung;
	 if (rueck=(r>=8))
	   r-=8;
	 if (spiegel=(r>=4))
	   r-=4;
	 printf(  "keine neue Lösung, weil doppelt zu Lösung %d mit %s %s %d Drehungen:", loesung,(rueck) ? "rückwärts,":"", (spiegel)?"gespiegelt,":"", r); }
 
  /*
	for (i=0;i<N;++i)       // Darstellung als Liste der Punkte
	   printf(" %2d", p[i]);
	printf("\n    Strecken:");
	for (i=0;i<N;++i)
	   printf(" %2d", ns[i]);
	printf("\n");  */
 
  n=(n<N)? n+1:N;         // Max Begrenzung und +1 für Teillösung
  for (i=0;i<n;++i)       // Darstellung in Schachnotation mit Komma beim Streckenwechsel
     printf("%c%c%s",'A'+py[i],'1'+px[i], (i<(N-1) && ns[i]!=ns[i+1])?", ":" ");
  printf("\n");
}
 
void set_koo(int n,int pos)
{
	p[n]=pos;
	px[n]=pos-(py[n]=pos/WU_N)*WU_N;
}
 
 
int gleich(int *links, int *rechts)
{
	int i;
	for (i=0;i<N;++i)
	 if (links[i] != rechts[i])
	   return 0;
	return 1;
}
 
int spiegeln(int *a) // an Diagonale 0..N-1
{
	int pos,x,y,i;
	for (i=0;i<N;++i) {
	   pos=a[i];
	   x=pos-(y=pos/WU_N)*WU_N;
	   a[i]=WU_N*x+y; }  // x und y vertasucht
}
 
int drehen(int *a) // 90° mathematisch positiv
{
   int pos,x,y,x_neu, y_neu, i;
   /* Drehmatrix 90° = 0 -1   ==> x_neu=-y   y_neu=x
                       1 0 */
	for (i=0;i<N;++i) {
	   pos=a[i];
	   x=pos-(y=pos/WU_N)*WU_N;
	   /* x_neu=-y+3; y_neu=x wg Drehpunkt nicht in der Mitte sondern bei 0, 0) */
	   a[i]=WU_N*x +(WU_N-1)-y; }
}
 
int doppelt() // Test, ob die Lösung p[0]...p[15] einer vorhandnen Lösung in loe[][] entspricht (gleich wenn gereht oder gedreht + gespiegelt)
{
  int i,x;
  int c[N]; // zu prüfende Lösung
 
  for (x=0; x<n_loesung;++x) {
     for (i=0;i<N;++i)  // kopieren der zu prüfenden neuen Löung
        c[i]=p[i];
 
     for (i=0;i<4; ++i) {  // 0, 90, 180, 270 Grad gedreht
	      if (gleich(loe[x],c))
	         return 32+32*x+i;
	      drehen(c);}
      spiegeln(c);
      for (i=0;i<4; ++i) {     // gespiegelte 90 180 270 360 gedreht
	  	  if (gleich(loe[x],c))
	         return 32+32*x+4+i;
	      drehen(c);   }
 
      for (i=0;i<N;++i)  // kopieren der zu prüfenden neuen Lösung rückwärts
        c[i]=p[N-1-i];
 
      for (i=0;i<4; ++i) {  // 0, 90, 180, 270 Grad gedreht
          if (gleich(loe[x],c))
             return 32+32*x+8+i;
    	  drehen(c);   }
         spiegeln(c);
      for (i=0;i<4; ++i) {     // gespiegelte 90 180 270 360 gedreht
    	  if (gleich(loe[x],c))
    	     return 32+32*x+12+i;
     	   drehen(c); } }
   return 0;
}
 
int strecken(int n)  // Rückgabe 1, wenn unzulässig insb. auch mehr als SMAX Strecken
{
 
   int dx,dy,dx2,dy2,dx3,dy3,quo, a_quo, b_quo;
   int i,x,y;
 
   double a, b, s_x, s_y;
 
 
   if (n<2)       // erste Teilstecke hat keine weiteren Bedingungen
     return 0;
 
    // nur nächste Punkte sind zulässig, bei Überstreichen weiter Punkte: Rückgabe 1
   dx=px[n]-px[n-1];  // Berechnung Steigung des letzten Abschnittes
   dy=py[n]-py[n-1];
 
 /*  ady=(dy<0)? -dy:dy;      // Überstreichverbot
   adx=(dx<0)? -dx:dx;
   if ( (0==ady && adx>1) ||  			 // waagrecht mit Überstreichen
        (0==adx && ady>1) ||			 // senkrecht mit Überstreichen
        (ady==adx && adx>1)  ) 			 // diagonal mit Überstreichen
                                         // NB bei  4x4 ist mit (schräg aber nicht diagonal) kein zweiter Punkt erreichbar. Ab 5x5 müsste man das auch abfangen. Beispiel (a1,e3) wg c2 nicht zulässig
		   i=i; // return 1; // deckt auch Rückwärts-Verbot ab, da keine Lücken entstehen // Verbot deaktiviert weil Sequenz 2 7 15 (1) damit verboten wird
*/
 
   // Fortsetzung ?
   dx2=px[n-1]-px[n-2]; // Steigung des vorletzten Abschnittes
   dy2=py[n-1]-py[n-2];
 
   if (dx2==dx && dy2==dy) {
     ns[n]=ns[n-1];
     return 0; } // Fortsetzung, Anzahl der Strecken bleibt gleich, Abschnitt zum letzten Punkt gehört zur gleichen Strecke
 
   if (2==n){          // Strecke zum 3. Punkt ist,  wenn sie nicht fortgesetzt wurde, zweite Teilstrecke
	   ns[2]=2;        // Eigentlich ns[n]=1+ns[n-1];
	   return 0; }
 
    // Hochzählen neue Strecke?
    /* Hochzählen, es sein denn, ein Zweifachknick kann zusammen geführt werden durch Knickpunkt außerhalb der Punkte. Bedingungen dafür
        Knick beim letzten Abschnitt
        (&& der Schnittpunkt und der Weg zum Schnittpunkt liegt nicht auf einem Punkt)
        && Strecken laufen zusammen */
 
     if (ns[n-1] != ns[n-2]) {  // Knick beim letzten Abschnitt
 
        dx3=px[n-2]-px[n-3]; // Steigung des vorvorletzen Abschnittes
        dy3=py[n-2]-py[n-3];
 
        quo=dy*dx3 - dx*dy3;
 
        if (0!=quo) { // nicht parallel
                    // Bedingung für Strecken laufen zusammen
                    // (1) Schnittpunkt_x = px[n-2] + a dx3  =  px[n-1] - b dx       mit a,b >0 (=Schnittpunkt in Verlängerung)
                    // (2) Schnittpunkt_y = py[n-2] + a dy3  =  py[n-1] - b dy
                    // (3) aus (1) a=( px[n-1] - px[n-2] - b dx) / dx3
                    // (3) in (2)  b=( (py[n-1] - py[n-2]) * dx3 - (px[n-1] - px[n-2]) * dy3 ) / (dy dx3 - dx dy3)
 
           b_quo = ( dy2 * dx3 -  dx2 * dy3); // b = b_qou / (double)quo;
           a_quo = ( dx2 * dy  -  dy2 * dx ); // a = a_quo / (double)quo;
 
           if ( (quo>0)? (a_quo>0 && b_quo>0) : (a_quo<0 && b_quo<0) ) { // Verlängerung der Linien kreuzen sich
			  s_x=(double)px[n-2]+(a_quo*dx3)/((double)quo);
			  if (s_x==0.0 || s_x==1.0 || s_x==2.0 || s_x==3.0 ) {      // Prüfung ob Schnittpunkt auf Gitterpunkt
		          s_y=(double)py[n-2]+(a_quo*dy3)/((double)quo);
		          if (s_y==0.0 || s_y==1.0 || s_y==2.0 || s_y==3.0 )
		             return 1; }                                         // Unzulässig weil auf Gitterpunkt
 
             // Prüfung ob auf dem Weg zum Schnittpunkt ein Gitterpunkt überstrichen wird
              b=b_quo/(double)quo;
              if (b>1)
                 for (i=1, x=px[n-1]-dx,y=py[n-1]-dy;i<b;x-=dx, y-=dy, ++i)  // rückwärts von p[n-1] bis zum Schittpunkt
                    if ((x>=0 && x<WU_N) && (y>=0 && y<WU_N)) // Gitterpunkt
                       return 1;
              a=a_quo/(double)quo;
              if (a>1)
                 for (i=1,x=px[n-2]+dx3,y=py[n-2]+dy3;i<a;x+=dx3, y+=dy3, ++i)   // vorwärts von p[n-2] bis zum Schnittpunkt
                    if ((x>=0 && x<WU_N) && (y>=0 && y<WU_N)) // Gitterpunkt
                       return 1;
 
              ns[n]=ns[n-1];     // keine neue Strecke, weil die Verlängerung [n-3 ,, n-2] sich mit der Verlängerung von [n ,, n-1] kreuzt
              return 0; } } }
 
   return (((ns[n]=1+ns[n-1])>SMAX) ? 1 : 0);  // neue Strecke
}
 
int teiler(int a,int b) // euklidischer Algorithmus Berechnung ggT
{
	while (b!=0) {
		if (a>b)
		    a=a-b;
		else
		    b=b-a; }
    return a;
}
 
 
int uebersprung(int n)
{
	int i,dx,dy,adx,ady, flag;
	// Test ob in der Lösung Punkte übersprungen werden zB A1 D1 überspringt A2, B2
	// Soll senkrechtes, diagonales und schiefes Überspringen erfassen
	// Bei 4x4 ist nur senkrechtes und waagrechtes Überspringen aufgetreten.
	/* dx=0, ady>1 waagrecht
	   dy=0, adx>1 senkrecht
	   adx=ady && adx > 1 diagonal
       adx, ady nicht teilerfremd
       eigentlich verbotene Sprünge A1 D1 können zulässig sein, wenn die Strecke nicht dort lang geht sondern die strecken davor verlängert sind,
       zB Dach:
 
             z2 z3
          A1       D1
       B0             E2
 
       */
 
    for (i=1; i<n;++i) {
		dx=px[i]-px[i-1];  // Berechnung Steigung des letzten Abschnittes
		dy=py[i]-py[i-1];
 
		adx=(dx<0) ? -dx:dx;
		ady=(dy<0) ? -dy:dy;
		if (adx<2 && ady<2)  // Schrittweite 1: kann nicht überschreiten
		  continue;
		flag=0;
		if (adx==0 && ady>1)  // senkrecht
		  flag=1;
		else if (ady==0 && adx>1)  // waagrecht
		  flag=1;
		else if (ady==adx && adx>1)  // diagonal
		  flag=1;
		else if (teiler(adx,ady)>1) // schräg
		  flag=1;
 
		if (flag==0) // keine Überschreitung
		   continue;
		// Test ob Überschreitung zulässig weil Strecke dort nicht lang geht sondern ausgeknickt ist
		if (i<2||i==n-1) // erstes, letztes Teilstück knickt nie aus
           return 1;
		if (i<n-2 && (ns[i+1]-ns[i-2]!=1)) // Überschreitende Strecke ist separate oder durchgehende Stecke (erschlägt alle 4x4 Fälle)
		   return 1; }
    return 0;
}
 
 
 
int try_next_point(int n)
{
	int i;
	if (n==N-1) {             // Letzter Punkt: gibt nur noch einen freien
	  for (i=0;i<N;++i)
	    if (!besetzt[i])
	      break;
	//  if (i<stop[n])  // Debug vorspulen zur einer bekannten Lösung
	//    continue;
	  set_koo(n,i);
	  if (strecken(n))        // Lösung wenn Streckenzahl stimmt, keine Übersprünge, nicht doppelt
	    return 0;
	  if (uebersprung(N))
	    return 0;
 
	  if (!(grund=doppelt())) {
	    for (i=0;i<N;++i)          // Kopieren der Lösung ins Lösungsarray
	      loe[n_loesung][i]=p[i];
	    ++n_loesung;
	    drucken(N-1);
	    if (n_loesung>=LOE_MAX) {
	      printf("Maximale Anzahl speicherbarer Lösungen erreicht\n");
	      --n_loesung;
	      return 0; }
	    return 1;
	    }
  	    else {
		 /* drucken(grund); */   // Ausgabe der als doppelt markierten Lösungen mit Grund
	    return 0; }
    }
 
	for (i=0; i<N;++i) {     // Positions-Schleife für den Punkt n
	   if (besetzt[i])
	       continue;
	   set_koo(n, i);
	   if (strecken(n))
	       continue;
 
       besetzt[i]=n+1; // Punkt besetzen
	   try_next_point(n+1);
	   besetzt[i]=0;   // Punkt freigeben
	}
	return 0;
}
 
void main(void) {
  int i,p0=0;
  time_t startzeit, endzeit;
 
  printf("2019 Programm zur rekursiven Suche nach Lösungen für %d Striche durch %d x %d also %d Punkte\n",SMAX, WU_N, WU_N, N);
  time(&startzeit);
 
  for (i=0;i<N;++i)
    besetzt[i]=0;
 
  ns[0]=ns[1]=1;
  for(p0=0;p0<N;++p0) {       // Schleife für ersten Punkt separat wg Symmetiebedingung
	  set_koo(0,p0);
	  if (px[0]>=(WU_N+1)/2 || py[0]>px[0] ) // nur schräge obere Hälfte des 1. Quartals wg Dreh + Spiegelsymetrie
	     continue;
	  besetzt[p0]=1;
	  try_next_point(1);
	  besetzt[p0]=0;  }
 
  time(&endzeit);
  printf("Laufzeit:%lds\n",endzeit-startzeit);
  scanf("%*s");
 
}
 





Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.44, eingetragen 2019-06-11


@haribo,
such im Code nach "vorspulen zur einer bekannten Lösung".
als stop array wäre dann einzutragen zB Suchen von ausgehend der ersten Reihe waagrecht bei 5x5: int stop[]={0,1,2,3,4,0,0,0,0,...};
die angegebenen Zahlen sind die Position mit A1=0, A1=2, B1=5 , B2=6,,,E5=24.
Also der erste Punkt (Index 0) auf Position 0(=A1), ich hoffe, es ist klar.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.45, eingetragen 2019-06-11


Gesamtzahl der Lösungen für 4x4

Jetzt haben wir
- 41 von thom3 im SPON Forum
- mindestens +2 also >=43 von siehe SOP Forum #289 UliBreimaier
- 63 nach ps71
- oder 100 (- ? dopppelte) nach Bäumler



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.46, vom Themenstarter, eingetragen 2019-06-11


2019-06-11 15:06 - Baeumler16 in Beitrag No. 44 schreibt:
@haribo,
such im Code nach "vorspulen zur einer bekannten Lösung".

nuscht is klar, C is halt derzeit nicht in meinem repoirtoire...

aber dieser tolle ergoogelte 10x10er hier: "www.mathpuzzle.com/dots10x10.gif"

hat mich endlich auf den ersten einmaligen 9 x 9er gebracht:

er ist noch etwas unsortiert... aber hab ich jetzt lückenlos einmalige von 3x3 bis 14x14, alle mit 2(n-1)linien
haribo



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.47, vom Themenstarter, eingetragen 2019-06-11


möglicherweise kann man ihn systematisch um 2n erweitern?

das hätte den charme damit dann alle bis unendlich x unendlich zu haben
haribo



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.48, eingetragen 2019-06-11


Geht der Schmettling auch für große n? Dann wäre die Hälfte der Unendlichkeit schon geschafft.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.49, vom Themenstarter, eingetragen 2019-06-11


5/6el der unendlichkeit geht ja schon mit #36
der kann alles ausser der 6er reihe 9;15;21;...;m*6+3;unendlich+3



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.50, vom Themenstarter, eingetragen 2019-06-11


14 x14 geht, der trick ist die blaue linie in ihrer unregelmässigkeit im rechten teil

graphik einzeln anzeigen lassen vergrössert sie etwas!
haribo



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.51, eingetragen 2019-06-12


Beitrag No 36 hier? Da sehe ich nicht, wie damit 5/6 der Unendlichkeit abgedeckt sind.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 1015
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.52, eingetragen 2019-06-12


Guten Morgen ;)

Bäumler, leider hatte ich im Überschwang Deine Nachfrage in #29 hier überlesen und kann erst jetzt darauf eingehen.

Ich zeichne mit "CorelDRAW 8", für das ich eine Lizenz besitze.
Damit habe ich auch schon hochpräzise komplizierte Gleispläne für mein Modellbahnhobby erstellt, das ich mit ein paar Teppich-/Parkettbahnern teile. Als Auflösung stelle ich 600 dpi ein, bemühe mich stets um möglichst exakte und schöne Grafiken, wie ich sie einst auch für Ausarbeitungen an der Uni erstellt habe. Einzelne Elemente kann man dann bequem als PNG oder JPG exportieren, und per PDF24Creator werden entsprechende Dokumente erstellt.
Das dient mir aber lediglich zur sorgfältigen Aufbereitung meiner ansonsten flugs von Hand gepinselten Skizzen - als "BackEnd" für einen Algorithmus ist es untauglich.

Beim "A1B2C3D4C4B3A2..."-Grafikkonverter nach HTML kann ich Dir leider nicht helfen. Aber da ist mein Zutrauen in Dich nahezu grenzenlos ;)

Meinen ersten "Schuss" zur topologischen Typenübersicht mit den 40(!) Lösungen werde ich wohl heute im Laufe des Tages hier als PNG einstellen und dann im SPON-Forum darauf verweisen.
Die Arbeit wartet...

Liebe Grüße - auch an [haribo]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.53, eingetragen 2019-06-12


Konverter ist fertig und poduziert zB aus einem Textfile mit

Spon #289
Uli+1  A1-C2-X-D4-C4-B4-A4-X-A2-B1-X-C1-C2[d]-C3-B3-A3-B2-C1[d]-X-D1-D2-D3
Uli+2  A1-C2-C-D4-C4-B4-A4-X-A3-B2-C1-C2[d]-C3-B3-A3[d]-X-A2-B1-X-D1-D2-D3.

den Text, den man in das jcsahnwaldtsche html (hier) einfügen kann.
solution(120, ['Uli+1'],  300, 330, 60, 80, [[0,0],[3.00,6.00],[3.00,-2.00],[-1.00,2.00],[2.00,2.00],[2.00,0.00],[-1.00,3.00],[2,3]],'');
solution(120, ['Uli+2'],  300, 330, 60, 80, [[0,0],[3.00,6.00],[3.00,-1.00],[0.00,2.00],[2.00,2.00],[2.00,-1.00],[-2.00,3.00],[2,3]],'');

Und sieht dann so aus:

Kann ich bei Bedarf auch als C-File oder .exe zur Verfügung stellen.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
haribo
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.10.2012
Mitteilungen: 3030
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.54, vom Themenstarter, eingetragen 2019-06-12


2019-06-12 09:20 - Baeumler16 in Beitrag No. 51 schreibt:
Beitrag No 36 hier? Da sehe ich nicht, wie damit 5/6 der Unendlichkeit abgedeckt sind.


so sieht das aus:


systematische anweisung:
-bei n/n nach oben starten bis a/n
-die diagonale runter bis n/1
-GUZ weiter hineinwickeln bis nur noch ein punkt frei ist
-bei 1/1 eine zweite schnecke nach unten starten
-GUZ reinwickeln bis auch dort nur ein punkt frei ist
- beide freien punkte verbinden und mit den startstrecken der schnecken verschneiden

die formel für die differenz der einzelnen punkte ist in der zeichnung angegeben, jeweils bei der schon angegebenen sechserreihe 3;9;15;21; ergeben sich für dx/dy zwei zahlen die 2 als gemeinsamen teiler besitzen, drum geht die verbindungsgerade u.A. dort durch einen schon besetzten punkt (es ist der mittelpunkt im feld) womit die einmaligkeit gestört wird

die idee der formel für dx/dy stammt von dir bei einer anderen schneckenvariante (irgendwo im spon forum), ich glaube du hattest aber einen fehler in deiner formel(bei y), und damals dann folglich fehlerhaft daraus geschlossen dass für grosse n immer doppelt besuchte punkte sich ergeben müssen... (dein beispiel war n=29... )

n=29 geht aber, sowohl für obige doppelschnecke als auch für deine schnecke, denn für beide schneckengebilde sind die dx/dy abstände der letzten beiden freien punkte bei gleichem n gleich!
haribo


[Die Antwort wurde nach Beitrag No.52 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.55, eingetragen 2019-06-12


Meine aktuell Sammlung als HTML (basierend auf jcsahnwaldt) der 4x4 Lösungen (sortiert nach erstem Punkt, zweitem Punkt ..., entspricht Spiegelonline IQ149 (#275)). Ja es fehlen ein paar.
Neben Dreh/Spiegel/rückwärts sind auch alle Endlinien soweit wie möglich zurückgenommen. Die Liste war eine generierte, die ich manuell reduziert habe. Interessanterweise hat dort auch Uli+1 und Uli+2 gefehlt.
HTML Code
HTML
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Lösung 4x4</title>
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<script>
function solution(pos, text, width, height, x0, y0, path, link) {
  const v = document.createElement('canvas');
  v.width = width;
  v.height = height;
  v.style = 'vertical-align: middle;';
  v.title = '(' + path.join(') -> (') + ')';
  const c = v.getContext("2d");
 
  if (link) {
    const a = document.createElement('a');
    a.href = link;
    a.appendChild(v);
    document.body.appendChild(a);
  }
  else {
    document.body.appendChild(v);
  }
 
  const s = 16;
  c.fillStyle = 'black';
  c.font = s + 'px sans-serif';
  c.textAlign = 'center';
  let y = 0;
  for (let line of text) {
    y += s;
    c.fillText(line, pos, y);
  }
 
  const d = 40;
  c.fillStyle = '#80C0F0';
  for (let i = 0; i < 4; i++) {
    for (let j = 0; j < 4; j++) {
      const x = x0 + d * i;
      const y = y0 + d * j;
      c.beginPath();
      c.arc(x, y, 10, 0, 2 * Math.PI);
      c.fill();
    }
  }
 
  c.strokeStyle = 'black';
  c.lineWidth = 2.5;
  c.beginPath();
  let o = null;
  for (let p of path) {
    if (p) {
      const x = x0 + d * p[0];
      const y = y0 + d * p[1];
      if (o) c.lineTo(x, y);
      else c.moveTo(x, y);
    }
    o = p;
  }
  c.stroke();
}
 
</script>
</head>
<body style="font-family: sans-serif">
<h3>
L&ouml;sung 4x4</a>
</h3>
 
 
<script>
 
solution(120, ['   1. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[-2.00,3.00],[5.00,3.00],[-1.00,0.00],[1.50,2.50],[3,1]],'');
solution(120, ['   2. Lösung'],  300, 330, 60, 80, [[0,0],[3.00,0.00],[0.00,3.00],[0.00,0.50],[5.00,3.00],[1.00,3.00],[3,1]],'');
solution(120, ['   4. Lösung'],  300, 330, 60, 80, [[0,0],[3.00,0.00],[0.00,3.00],[5.00,3.00],[0.00,0.50],[0.00,4.00],[3,1]],'');
solution(120, ['   5. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[0.00,4.00],[0.00,0.50],[5.00,3.00],[0.00,3.00],[2,1]],'');
solution(120, ['   6. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[1.50,2.50],[-1.00,0.00],[5.00,3.00],[-2.00,3.00],[2,1]],'');
solution(120, ['  10. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[1.00,3.00],[5.00,3.00],[0.00,0.50],[0.00,3.00],[2,1]],'');
solution(120, ['  11. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[0.00,4.00],[0.00,1.00],[3.00,1.00],[3.00,4.00],[1,2]],'');
solution(120, ['  12. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,0.00],[0.00,4.00],[0.00,1.00],[3.00,4.00],[3.00,1.00],[1,1]],'');
solution(120, ['  13. Lösung'],  300, 330, 60, 80, [[0,0],[7.00,0.00],[-1.00,4.00],[1.50,1.50],[4.00,4.00],[-2.00,1.00],[3,1]],'');
solution(120, ['  14. Lösung'],  300, 330, 60, 80, [[0,0],[2.00,0.00],[2.00,3.00],[-1.00,3.00],[3.00,-1.00],[3.00,4.00],[0,1]],'');
solution(120, ['  37. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,4.00],[1.67,-0.67],[-0.50,1.50],[1.67,3.67],[4.00,-1.00],[0,3]],'');
solution(120, ['  38. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,4.00],[1.50,-1.00],[-1.00,4.00],[4.00,-1.00],[1.50,4.00],[0,1]],'');
solution(120, ['  39. Lösung'],  300, 330, 60, 80, [[0,0],[3.00,3.00],[3.00,-4.00],[-1.00,4.00],[4.00,-1.00],[-4.00,3.00],[2,3]],'');
solution(120, ['  59. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,2.00],[-1.00,2.00],[3.00,-2.00],[3.00,3.00],[-1.00,3.00],[2,0]],'');
solution(120, ['  61. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,2.00],[0.00,2.00],[3.00,-1.00],[3.00,3.00],[-2.00,3.00],[1,0]],'');
solution(120, ['  62. Lösung'],  300, 330, 60, 80, [[0,0],[4.00,2.00],[-1.00,2.00],[1.50,-0.50],[5.00,3.00],[-3.00,3.00],[3,0]],'');
solution(120, ['  64. Lösung'],  300, 330, 60, 80, [[0,0],[6.00,3.00],[-2.00,3.00],[3.00,-2.00],[3.00,2.00],[0.00,2.00],[2,0]],'');
solution(120, ['  65. Lösung'],  300, 330, 60, 80, [[0,0],[6.00,3.00],[-1.00,3.00],[3.00,-1.00],[3.00,2.00],[-1.00,2.00],[1,0]],'');
solution(120, ['  69. Lösung'],  300, 330, 60, 80, [[0,0],[2.00,4.00],[2.00,0.00],[-1.00,3.00],[3.00,3.00],[3.00,-2.00],[0,1]],'');
solution(120, ['Uli+1'],  300, 330, 60, 80, [[0,0],[3.00,6.00],[3.00,-2.00],[-1.00,2.00],[2.00,2.00],[2.00,0.00],[-1.00,3.00],[2,3]],'');
solution(120, ['Uli+2'],  300, 330, 60, 80, [[0,0],[3.00,6.00],[3.00,-1.00],[0.00,2.00],[2.00,2.00],[2.00,-1.00],[-2.00,3.00],[2,3]],'');
solution(120, ['  73. Lösung'],  300, 330, 60, 80, [[0,0],[3.00,6.00],[3.00,-1.00],[-1.00,3.00],[2.00,3.00],[2.00,-1.00],[0,1]],'');
solution(120, ['  75. Lösung'],  300, 330, 60, 80, [[1,0],[-1.00,0.00],[3.00,4.00],[3.00,-1.00],[-1.00,3.00],[2.00,3.00],[2,1]],'');
solution(120, ['  77. Lösung'],  300, 330, 60, 80, [[1,0],[3.00,0.00],[0.00,3.00],[0.00,-1.00],[3.00,5.00],[3.00,1.00],[1,3]],'');
solution(120, ['  79. Lösung'],  300, 330, 60, 80, [[1,0],[4.00,0.00],[0.00,4.00],[0.00,-3.00],[4.00,5.00],[-1.00,0.00],[3,2]],'');
solution(120, ['  83. Lösung'],  300, 330, 60, 80, [[1,0],[4.00,0.00],[0.00,4.00],[0.00,-1.00],[3.00,5.00],[3.00,0.00],[1,2]],'');
solution(120, ['  92. Lösung'],  300, 330, 60, 80, [[1,0],[2.50,1.50],[0.00,4.00],[0.00,-1.00],[3.00,5.00],[3.00,-2.00],[1,2]],'');
solution(120, ['  99. Lösung'],  300, 330, 60, 80, [[1,0],[4.00,3.00],[-1.00,3.00],[4.00,-2.00],[1.67,2.67],[-1.50,-0.50],[3,1]],'');
solution(120, [' 101. Lösung'],  300, 330, 60, 80, [[1,0],[4.00,3.00],[0.00,3.00],[0.00,0.00],[3.00,3.00],[3.00,-2.00],[1,2]],'');
solution(120, [' 105. Lösung'],  300, 330, 60, 80, [[1,0],[-1.00,4.00],[4.00,-1.00],[1.50,4.00],[-1.00,-1.00],[4.00,4.00],[2,0]],'');
solution(120, [' 108. Lösung'],  300, 330, 60, 80, [[1,0],[3.00,4.00],[3.00,-1.00],[-1.00,3.00],[6.00,3.00],[-2.00,-1.00],[1,2]],'');
solution(120, [' 109. Lösung'],  300, 330, 60, 80, [[1,0],[2.50,3.00],[-1.00,3.00],[3.00,-1.00],[3.00,4.00],[-2.00,-1.00],[2,1]],'');
solution(120, [' 113. Lösung'],  300, 330, 60, 80, [[1,0],[3.00,4.00],[3.00,-1.00],[-1.00,3.00],[6.00,3.00],[-2.00,-1.00],[1,2]],'');
solution(120, [' 114. Lösung'],  300, 330, 60, 80, [[1,0],[3.00,4.00],[3.00,-1.00],[-1.00,3.00],[2.00,3.00],[-2.00,-1.00],[2,1]],'');
solution(120, [' 133. Lösung'],  300, 330, 60, 80, [[1,1],[3.00,3.00],[3.00,0.00],[-1.00,0.00],[2.00,3.00],[-2.00,3.00],[2,1]],'');
 
</script>
 
</body>
</html>
 




[Die Antwort wurde nach Beitrag No.53 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Baeumler16
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 09.06.2019
Mitteilungen: 49
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.56, eingetragen 2019-06-12


Ich gehe immer noch davon aus, dass meine Formel für meine Kringel richtig ist, aber egal, der Nachteil meiner Kringellösung ist, dass der freie Punkt in der Mitte bei ca. einem Drittel liegt und über A1-(Freier Punkt) mit der nach ganz rechts geführt werden muss.
Deine Lösung ist besser, als sie die beiden Punkte in die Mitte legt. Wenn das teilerfremd ist wird im Drittel links und im drittel rechts kein Punkt berührt (ich bin nicht 100% sicher, aber fast).
Als Vorschlag: Ändert sich der freie Mittelpunkt, wenn du einen Kringel andersrum drehst?

PS , ja es kam ein anderer letzter Punkt raus, aber dafür schneidet sich die jetzt waagrechte Gerade nicht mehr mit der Verbindungslinie der beiden letzten Punkte. Schade ...


Mein 5x5 brute Force Ansatz hat bei 180000s die Lösung 117 beginnend mit A1 B3 gefunden.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
-->> Fortsetzung auf der nächsten Seite -->>
Seite 1Gehe zur Seite: 1 | 2 | 3 | 4 | 5 | 6  
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]