Entwickler-Ecke
Open Source Projekte - Sudokubus
Mathematiker - Fr 12.12.14 22:52
Titel: Sudokubus
Hallo,
für alle, die nach dem Adventsspiel vom 11.12.14 noch etwas üben wollen, habe ich hier eine leicht erweiterte Version von Sudokubus. Vor allem kann man hier spielen, ohne dass eine Verbindung zum EE-Server aufgebaut wird.
Sudokubus ist ein Variante des allgemein bekannten japanischen Zahlenspiels Sudoku.
Ein würfelförmiges Gerüst wird an den Knoten mit Kugeln versehen. Die Kugeln bilden eine 3x3x3-Anordnung.
Die Spielregeln sind einfach: Jede der 27 Kugeln ist mit den Zahlen 1 bis 9 zu versehen, so dass
1) in jeder der drei Etagen jede Zahl genau ein Mal erscheint,
2) in jeder der drei zur Frontalebene parallelen Ebenen jede Zahl genau ein Mal erscheint und
3) in jeder der drei zur Seitenwand parallelen Ebenen jede Zahl genau ein Mal erscheint.
Die Abbildung illustriert die drei Etagen, die drei zur Frontalebene parallelen Ebenen und die drei zur Seitenwand parallelen Ebenen. "mit Kontrolle" bewirkt, dass sofort bei Eingabe einer Ziffer geprüft wird, ob ein Fehler vorliegt.
Die Idee zu diesem Teilprogramm stammt von dem Schweizer Mathematiker Hans Walser. Von ihm stammt auch der Name "Sudokubus".
siehe dazu
http://www.walser-h-m.ch/hans/Miniaturen/S/Sudokubus/Sudokubus.pdf
Viel Spaß beim Spielen
Mathematiker
Horst_H - Sa 13.12.14 10:59
Hallo,
Plötzlich stoppt mein Programm bei einem leeren Ausgangskubus:
Quelltext
1:
| Loesungen: 14.403.882 bei 1.610.612.736 Versuchen nach 00:40.436 |
Wie viele einzigartige gibt es denn?
Kann es sein, das die drei in Deinem Programm genau diese sind?
Denn allein das Austauschen der Zahlen untereinander sollten um den Faktor 9! = 362880 Lösungen reduzieren.
Dann noch die Permutation der parallelen Ebenen 3*3! da bleibt nichts mehr...
Gruß Horst
Mathematiker - Sa 13.12.14 11:13
Hallo Horst,
Horst_H hat folgendes geschrieben : |
Wie viele einzigartige gibt es denn?
Kann es sein, das die drei in Deinem Programm genau diese sind? |
Tut mir leid, das weiß ich nicht.
Ich habe die 3 Lösungen aus dem oben genannten PDF-Text von Hans Walser übernommen.
Es ist aber eine sehr interessante Frage. Nach dem "gesunden Menschenverstand" würde man wohl sehr viele eindeutige Lösungen (bis auf Spiegelung, Drehung, ...) vermuten. Aber auf den gesunden Menschenverstand ist da wohl kein Verlass.
Hmm, mal nachdenken...
Beste Grüße
Mathematiker
Boldar - Sa 13.12.14 15:56
Die Vorgaben die ich im Gewinnspiel hatte waren übrigens definitiv nicht eindeutig, denn es kamen 3 Zahlen garnicht vor.
BenBE - Sa 13.12.14 16:12
Sollte ein Sudokubus nicht 4x4x4x4 haben? :P
Aber nettes Spielzeug.
@AGS: Bei mir war's eindeutig. Hab Prolog extra nach ner zweiten Lösung gefragt und er meinte false. ;-)
dsi - Sa 13.12.14 16:53
Wenn man nur dir eindeutigen Lösungen ohne Permutationen ermitteln will, sieht man schnell dass es nicht so sehr viele geben kann.
- Die erste Ebene kann man beliebig mit einer Kombination füllen (alle anderen Kombinationen lassen sich durch Permutation bilden).
- In der zweiten Ebene bleiben danach für jede Zahl nur 4 mögliche Positionen.
- Durch die dritte Ebene erhöht sich die Anzahl der möglichen Lösungen nicht weiter.
Horst_H - So 14.12.14 10:09
Hallo,
wenn ich mein Programm mit der ersten Ebene als Konstante starte, bekomme ich 40 Lösungen.
Dann wären 40*9! = 14.515.200 Lösungen möglich.Ich habe aber nur 14.403.882 bei einem leeren Feld.
Da fehlen mit 111.318 :-(
Gruß Horst
dsi - So 14.12.14 13:12
Horst_H hat folgendes geschrieben : |
Da fehlen mit 111.318 :-(
|
Das sind doppelte Lösungen, die durch Drehungen des Würfels entstehen.
Wenn du die z.B. die unterste Ebene konstant füllst, werden dadurch nur die Lösungen herausgefiltert, welche einr Drehung um die vertikale Mittelachse entsprechen. Es gibt aber noch doppelte Lösungen welche einer Drehung um eine horizontale Achse entsprechen.
Horst_H - So 14.12.14 14:15
Hallo,
ich habe mal die Ausgabe als Symbole A..I gemacht.
Da sieht man, das Ab der Mitte einfach nur die oberen zwei Ebenen getauscht sind, bleiben 20 originäre Lösungen bei der man A..I durch eine Permutation aus 1..9 entsprechend ersetzen kann.
Wie soll die Drehung aussehen, dass ich etwas doppelt zähle.Es wird doch A..I durch jede Möglichkeit ersetzt also auch durch die merkwürdigste Drehung.
Es könnte doch auch sein, das mein Programm einen Fehler hat.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| ABC DEF GHI ... ... ... ... ... ...
ABC DEF GHI EFD HIG BCA IGH CAB FDE
ABC DEF GHI EFD HIG CAB IGH BCA FDE
ABC DEF GHI EFD IGH BCA HIG CAB FDE
ABC DEF GHI EFD IGH CAB HIG BCA FDE
ABC DEF GHI EFG HIA BCD IDH CGB FAE
ABC DEF GHI EFH CIG BDA IGD HAB FCE
ABC DEF GHI EGD HIB FCA IFH CAG BDE
ABC DEF GHI EGH CIB FDA IFD HAG BCE
ABC DEF GHI EID HCG BFA FGH IAB CDE
ABC DEF GHI EIG HCA BFD FDH IGB CAE
ABC DEF GHI FDE HIG BCA IGH CAB EFD
ABC DEF GHI FDE HIG CAB IGH BCA EFD
ABC DEF GHI FDE IGH BCA HIG CAB EFD
ABC DEF GHI FDE IGH CAB HIG BCA EFD
ABC DEF GHI FDG ICH EAB HIE BGA CFD
ABC DEF GHI FDH IGB CAE EIG HCA BFD
ABC DEF GHI FGE IAH CDB HID BCG EFA
ABC DEF GHI FGH IAB CDE EID HCG BFA
ABC DEF GHI FIE BGH CAD HDG ICA EFB
ABC DEF GHI FIG BCH EAD HDE IGA CFB ############# ab hier die oberen zwei Ebenen getauscht 21->20 22->19 ... ABC DEF GHI HDE IGA CFB FIG BCH EAD
ABC DEF GHI HDG ICA EFB FIE BGH CAD ..... |
Gruß Horst
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!