Matroids Matheplanet Forum Index
Moderiert von matroid viertel
Matroids Matheplanet Forum Index » Rätsel und Knobeleien (Knobelecke) » [*] komplette Quadratrasterpfade
Autor
Kein bestimmter Bereich [*] komplette Quadratrasterpfade
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 2240
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
  Themenstart: 2023-03-18

Auf wieviele unterschiedliche Arten, reduziert um Dreh- und Spiegelsymmetrie, kann man ein quadratisches Raster \(4×4\) vollständig durchfahren? Da nicht den Überblick zu verlieren, ist nicht ohne. 😎 Diesmal gerne direkt hier, auf dass es viel zu sehen gebe!


   Profil
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Lösungen oder Beiträge zur Lösung direkt im Forum posten darfst.
Bei dieser Aufgabe kann ein öffentlicher Austausch über Lösungen, Lösungswege und Ansätze erfolgen. Hier musst Du keine private Nachricht schreiben!
tactac
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 15.10.2014
Mitteilungen: 2796
  Beitrag No.1, eingetragen 2023-03-18

\(\begingroup\)\(\newcommand{\sem}[1]{[\![#1]\!]} \newcommand{\name}[1]{\ulcorner#1\urcorner} \newcommand{\upamp}{\mathbin {⅋}} \newcommand{\monus}{\mathbin {∸}}\) Anders als beim 3x3-Raster liegt nicht mindestens ein Ende in einer Ecke. Daher reicht es nicht, Pfade zu generieren, die etwa in der linken oberen Ecke anfangen. Aber es sollte reichen, in der linken oberen Ecke zu starten, ihrem rechten Nachbarfeld, und dessen unteren Nachbarfeld. Hier ein Programm, das theoretisch auch für größere Felder funktioniert (bei nicht-Quadraten ist die Symmetriebehandlung aber Unfug), und das bei den Starts noch etwas großzügiger ist: \sourceon Haskell import qualified Data.Set as S import qualified Data.Map as M import Control.Monad main = print $ S.size $ S.fromList $ generate 4 4 type Pos = (Int, Int) type Path = M.Map Pos Int generate :: Int -> Int -> [Path] generate wid hei = do start <- liftM2 (,) [1..(wid+1)`div`2] [1..(hei+1)`div`2] go start $ M.singleton start 1 where siz = wid*hei go (x,y) m | M.size m == siz = [normalize m] | otherwise = do pos@(x',y') <- [(x+1,y),(x-1,y),(x,y+1),(x,y-1)] guard $ 1 <= x' && x' <= wid && 1 <= y' && y' <= hei guard $ pos `M.notMember` m go pos $ M.insert pos (M.size m + 1) m normalize :: Path -> Path normalize p = minimum [transform a b c d p | [a,b,c,d] <- replicateM 4 [False, True]] transform :: Bool -> Bool -> Bool -> Bool -> Path -> Path transform negX negY swapXY rev p = M.fromList $ do ((x,y),n) <- M.toList p let a = if negX then wid+1-x else x let b = if negY then hei+1-y else y let (c,d) = if swapXY then (b,a) else (a,b) let m = if rev then siz+1-n else n return ((c,d),m) \sourceoff Dieses gibt jedenfalls 38 aus (und 549 für 5x5, und 28728 für 6x6).\(\endgroup\)


   Profil
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 2240
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
  Beitrag No.2, vom Themenstarter, eingetragen 2023-03-18

Chapeau, tactac! 😮 Es ist ein Hamilton-Pfad-Problem: OEIS A265914 Dann lasst uns doch zunächst festlegen, wie wir die Dinger normiert darstellen wollen, und dann mit bunten Bildchen loslegen... 🤗


   Profil
gonz
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.02.2013
Mitteilungen: 4732
Wohnort: Harz
  Beitrag No.3, eingetragen 2023-03-19

Guten Morgen zusammen :) Ja, das ist eine schöne Sache, unter anderem, weil es einfacher zu beschreiben ist als der "Fleissige Sammler", und weil es mit weniger Parametern daherkommt (es braucht keine Zufallsfolge um die Felder zu füllen). Auch hier könnte man die Frage nach der Existenz oder Anzahl von geschlossenen Rundkursen stellen (für 3x3 gibt es keinen, wie sieht es bei 5x5 aus?) und damit eine zweite Integerfolge erzeugen. Jedenfalls auch so ein schönes "Spielzeug" ;) Grüße aus dem Harz - heute kalt und trocken - Gerhard/Gonz


   Profil
querin
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 12.01.2018
Mitteilungen: 862
  Beitrag No.4, eingetragen 2023-03-19

Hallo 🙂 mit einem etwas umständlichen python Programm kann ich zumindest tactacs Werte 38 für 4x4 und 549 für 5x5 bestätigen. Als Nebenprodukt erhalte ich mit allen Symmetrien 552 Pfade für 4x4 und 8648 Pfade für 5x5. Für beide Zählungen gibt es - wenig überraschend - OEIS Einträge: https://oeis.org/A265914 ohne Symmetrien https://oeis.org/A096969 mit Symmetrien Grüße querin


   Profil
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 2240
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
  Beitrag No.5, vom Themenstarter, eingetragen 2023-03-20

Denk' ich an Pfade in der Nacht... 🙄 \(7\,+\,31\,=\,38\) ; \(7\cdot8\,+\,31\cdot16\,=\,552\) @querin, Deine \(8\,648\) für \(5×5\) lassen unter den reduziert \(549\) Pfaden dort \(17\) achsen- oder punktsymmetrische ahnen: \(17\,+\,532\,=\,549\) ; \(17\cdot8\,+\,532\cdot16\,=\,8\,648\) Ob wir wenigstens die grafisch dokumentieren können? 😉


   Profil
hyperG
Senior Letzter Besuch: im letzten Monat
Dabei seit: 03.02.2017
Mitteilungen: 2009
  Beitrag No.6, eingetragen 2023-03-20

\quoteon(2023-03-19 17:21 - querin in Beitrag No. 4) ... Nebenprodukt ... Für beide Zählungen gibt es - wenig überraschend - OEIS Einträge: https://oeis.org/A265914 ohne Symmetrien https://oeis.org/A096969 mit Symmetrien Grüße querin \quoteoff Hallo querin, die Formel für die sym. A096969 (die nicht mal dort bei oeis zu finden ist!), habe ich in 1 Zeile packen können: \sourceon mathematica Table[Length[FindHamiltonianCycle[AdjacencyGraph[PadRight[AdjacencyMatrix[g=GridGraph[{k,k}]],(VertexCount[g]+1) {1,1},1]],All]]*2,{k,2,6}] ={8, 40, 552, 8648, 458696} \sourceoff Da Du beide Folgen "als Nebenprodukt" hast, folgende Frage: Wie kommt man leicht zu den "ohne Symmetrien" (also zu A265914)? {aus den gewaltig großen Zahlen-Arrays ein sym. "Muster" zu erkennen und zu eliminieren ist sehr komplex...} Grüße Gerd P.S. @cramilu: 4 Uhr ist ja absolute Nachtschicht-Zeit https://matheplanet.com/matheplanet/nuke/html/images/forum/subject/shocked.gif


   Profil
hyperG
Senior Letzter Besuch: im letzten Monat
Dabei seit: 03.02.2017
Mitteilungen: 2009
  Beitrag No.7, eingetragen 2023-03-20

\quoteon(2023-03-18 22:08 - tactac in Beitrag No. 1) ... Hier ein Programm, das theoretisch auch für größere Felder funktioniert (bei nicht-Quadraten ist die Symmetriebehandlung aber Unfug), und das bei den Starts noch etwas großzügiger ist: \sourceon Haskell import qualified Data.Set as S import qualified Data.Map as M import Control.Monad main = print $ S.size $ S.fromList $ generate 4 4 type Pos = (Int, Int) ... \sourceoff ... \quoteoff Hallo tactac, ich würde gern Deine feste Konstante 4 als variablen Parameter qsize für die Feldgröße als Kommandozeilenparameter an die EXE übergeben, aber mein Versuch mit: \sourceon Haskell ... import System.Console.CmdArgs do op <- cmdArgs options let qsize = read op :: Integer main = print $ S.size $ S.fromList $ generate qsize qsize ... \sourceoff bringt "Could not find module `System.Console.CmdArgs'" vermutlich, weil ich kein LINUX, sondern Win10 mit ghc --make -O2 A265914CmdLine.hs ... habe. Gibt es da was EINFACHES? Grüße


   Profil
tactac
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 15.10.2014
Mitteilungen: 2796
  Beitrag No.8, eingetragen 2023-03-21

\quoteon(2023-03-20 19:34 - hyperG in Beitrag No. 7) bringt "Could not find module `System.Console.CmdArgs'" vermutlich, weil ich kein LINUX, sondern Win10 mit ghc --make -O2 A265914CmdLine.hs ... habe. Gibt es da was EINFACHES? Grüße \quoteoff Hmm, kommt drauf an, wie du es installiert hast. Möglicherweise kannst du das fehlende Package mit cabal install cmdargs nachinstallieren.


   Profil
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 2240
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
  Beitrag No.9, vom Themenstarter, eingetragen 2023-03-21

So... zunächst die neuen Grafiken: Die begriffliche Unterscheidung zwischen kongruent und symmetrisch ist hier konkretisiert. Außerdem habe ich die Pfade etwas nachgegrünt. Ob bzw. wann ich dazu komme, die \(119\) symmetrischen unter den um kongruente reduzierten \(28\,728\) Hamilton- Pfaden für das Raster \(6×6\) nachzureichen, bleibt offen... Zu möglichen Symmetrien findet sich im Rahmen von OEIS - A265914 schon die Feststellung »For odd n > 1 the only symmetry possible is rotation by 180 degrees. For even n the only symmetries are reflections either horizontally or vertically.«. Also für ungerade \(n\geq3\) bloß [einfach] punktsymmetrische, und für gerade \(n\geq2\) bloß [einfach] achsensymmetrische. Vor Betrachtung figürlicher Symmetrie lässt sich jeder zu einem anderen kongruente Pfad auf \(16\) Arten denken - jeweils in \(\frac{360°}{90°}=4\) Drehpositionen, an einer orthogonalen Achse des Rasters gespiegelt und mit Orientierung 'vorwärts' oder 'rückwärts'. \(4\cdot2\cdot2=16\) . Bei symmetrischen Figuren von Pfaden halbiert sich das zu \(8\) . Sei nun jeweils \(h_n\) die Gesamtanzahl an Hamilton-Pfaden nach OEIS - A096969 (eine exakte Formel in Abhängigkeit von \(n\) ist bis dato noch nicht gefunden), \(k_n\) die Anzahl an reduziert kongruenten (OEIS - A265914) und \(s_n\) die Anzahl an symmetrischen unter letzteren, so muss gelten: \(8\,\cdot\,s_n\;+\;16\,\cdot\,(k_n-s_n)\;=\;h_n\) \(\Leftrightarrow\) \(s_n\;=\;2\,\cdot\,k_n\;-\;\frac{h_n}{8}\) \(s_1\) bis \(s_{15}\) lassen sich demnach via OEIS ermitteln: \([1{,}875]\;1,\;1,\;7,\;17,\;119,\;1\,014,\;10\,027,\;252\,680,\;2\,588\,176,\;...\) \(...\;270\,980\,912,\;4\,196\,708\,747,\;1\,295\,846\,398\,401,\;20\,398\,831\,422\,630,\;...\) Untersucht man die Entwicklungen der \(s_n\) für gerade \(n\) und für ungerade \(n\) getrennt voneinander, so drängt sich eine grobe Abhängigkeit auf wie folgt: für gerade \(n\geq2\) \(s_n\;\approx\;\left(\frac{5}{8}\right)^n\;\cdot\;2^{(n^2)}\) für ungerade \(n\geq3\) \(s_n\;\approx\;\left(\frac{2}{7}\right)^n\;\cdot\;\left(\frac{19}{9}\right)^{(n^2)}\) EDIT Leider habe ich mein Gekrakel wohl falsch abgelesen; wird in Kürze berichtigt! Ob sich das noch irgendwie polynomial hinformen lässt, wage ich zu bezweifeln... 🤔


   Profil
hyperG
Senior Letzter Besuch: im letzten Monat
Dabei seit: 03.02.2017
Mitteilungen: 2009
  Beitrag No.10, eingetragen 2023-03-23

A265914[n] hat für n>8 sehr exotische Eigenschaften: - immer zusammengesetzte Glieder (nie Primzahl) - ein Glied hat nie 2 gleiche Faktoren - ggT(aller Primfaktoren aller Glieder)=1, - sehr große größte Primfaktoren: 904632709, 687129481, 49166967897139531, 12564648373391999, 8796606975990781, 409412076081792019, 9505851656755832332675810867 \sourceon nameDerSprache fast wie f(n)=Prime[n]*Prime[54^n] \sourceoff ...und die Berechnung ab n>=7 dauert sehr lange...


   Profil
cramilu
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 09.06.2019
Mitteilungen: 2240
Wohnort: Schwäbischer Wald, seit 1989 freiwilliges Exil in Bierfranken
  Beitrag No.11, vom Themenstarter, eingetragen 2023-04-02

Nachfolgend die neuesten Grafiken: Die ersten beiden habe ich nachangepasst, weil mir im Zuge der Studie des \(6×6\) eine Darstellungsnormierung eingefallen ist, welche ich für sämtliche größeren \(n\) sowie für andere Pfadanforderungen gleicher- maßen als geeignet einschätze.


   Profil
cramilu hat die Antworten auf ihre/seine Frage gesehen.
Dies ist eine Knobelaufgabe!
Der Themensteller hat bestimmt, dass Du Lösungen oder Beiträge zur Lösung direkt im Forum posten darfst.
Bei dieser Aufgabe kann ein öffentlicher Austausch über Lösungen, Lösungswege und Ansätze erfolgen. Hier musst Du keine private Nachricht schreiben!

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-2023 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]