AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aufgabe: Algorithmus eines Zauberwürfels
Thema durchsuchen
Ansicht
Themen-Optionen

Aufgabe: Algorithmus eines Zauberwürfels

Ein Thema von p0ke · begonnen am 6. Jan 2004 · letzter Beitrag vom 8. Okt 2006
Antwort Antwort
Seite 2 von 3     12 3      
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#11

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 7. Okt 2006, 21:21
Wikipedia:

Man kann den Zauberwürfel auch mit verbundenen Augen lösen. Zu diesem Zweck bekommt man zuerst Zeit, sich den verdrehten Würfel einzuprägen. Der amerikanische Student Leyan Lo stellte in dieser Disziplin im Jahre 2006 mit 1 min 28,82 sec einen neuen Weltrekord auf

Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 7. Okt 2006, 21:47
Zauberwürfel: Es gibt ca. 8 Operationen, um bestimmte Teilaufgaben zu lösen. Dazu gehören:
1. Alle 8 Ecken in die richtige Position bringen
2. Obere und untere Fläche fertigstellen
3. Die Mitte fertigstellen
Meist sind jetzt 2 Steine vertauscht. Die bekommt man mit 8*3 Drehungen umgedreht-
4.Fertig.

Das o.g. ist nur eine von vielen Möglichkeiten. Ich hab das früher in so ca. 40 Sekunden geschafft. Wie gesagt, keine Kunst, wenn man die Operationen geübt hat.

Mit ein wenig Übung schafft das Jeder ohne Gichtproblemen in den Händen. Als Algorithmus eine nette Aufgabe, mehr aber auch nicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 7. Okt 2006, 22:34
Hier wird beschrieben, wie ein Lösungsweg funktioniert. Ich habe mich auf einer Mathematik-Informatik-Akademie mal mit einem aktiven Spped-Cuber unterhalten und der sagt, es gibt für alles Algorithmen. Alle diese Algorithmen basieren letztendlich auf dem Tausch von 2 Farbflächen. Wenn du dafür einen Algorithmus hast musst du ihn nur entsprechend oft anwenden, um den Würfel zu sortieren. Ich frag ihn mal, ob er mir dazu einschlägige Seiten sagen kann ....
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#14

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 7. Okt 2006, 22:44
Ho ich habe das gemacht, ist im Prinzip total easy

Link zum Programm
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 7. Okt 2006, 23:48
@ Corpsman: cooles Teil, aber berechnet das auch die schnellst mögliche Lösung?
Die einzige Möglichkeit, die Lösung mit den wenigsten Drehungen zu finden, ist wohl die Brute-Force-Methode. Einfach alle Möglichkeiten durchspielen.
Es gibt, wie hier schon gesagt wurde, zu jedem Zug 18 mögliche Drehungen. Ich behaupte mal, dass selbst die schlechteste Positionierung mit weniger als 50 Drehungen gelöst werden kann. Das heißt es gibt 18^50 verschiedene Wege.
Der erste Weg wäre, 50 mal die gleiche Drehung zu machen, der zweite wäre 49 mal die gleiche Drehung wie beim ersten zu machen und als 50ten Zug dann einen anderen Weg zu gehen. Diese 18^50 verschiedene Wege müssten alle nacheinander durchgespielt würden.
Stimmt, braucht Monate bis da ne Lösung gefunden würde.

Aber das alles könnte man ja ein bisschen vereinfachen und an vielen Ecken und Kanten einschränken, sodass man die Anzahl der Wege verringert.
  • Man darf nie nach einem Zug den entgegengesetzten ausführen, womit wir schonmal bei 17^50 wären.
  • Es darf nie über 2mal hintereinander die gleiche Drehung durchgeführt werden (denn wenn man dreimal in Richtung x dreht gelangt man zum gleichen Ergebnis wie wenn man einmal in die entgegengesetzte Richtung dreht). Dadurch fallen unglaublich viele Züge weg.
  • Nur für die Drehungen 1-9 ist erlaubt, zweimal hintereinander durchgeführt zu werden. Wenn man Drehung 10 nämlich 2mal hintereinander ausführt, erhält man das gleiche Ergebnis wie wenn man Drehung 1 zweimal durchführt (wenn 10 die Gegendrehung zu 1 ist).
  • Wenn eine Lösung mit weniger als 50 Drehungen gefunden wurde, kann für die nächsten Berechnungen die Rechentiefe vermindert werden.

Ich kann nicht genau abschätzen, wie viele mögliche Zug-Folgen dann noch übrig blieben, die berechnet werden müssen.
Vielleicht ist mein Lösungsansatz Bullshit, weil er zwar nicht Monate, dafür aber Tage braucht. War nur so meine spontane Idee.
Es wird aber nicht übermäßig viel Speicher belegt. Was gespeichert werden muss:
  • Ausgangslage
  • aktuelle Lage (nur die aktuelle, die vorherigen können vergessen werden. Es muss anhand der Lösungsnummer möglich sein, genau diesen Zug nachstellen zu können)
  • Lösungsnummer des Zuges, der von den bisher berechneten das schnellste Ergebnis liefert und die Anzahl der dafür benötigten Züge
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#16

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 8. Okt 2006, 00:06
wie redet ihr hier über den Zauberwürfel???
ich hatte früher(ok sehr viel früher) so einen und hab stunden versucht ihn wieder zurückzukriegen aber nie wieder geschafft

bei *Simpsons* hat er in der Folge, wo *Flanders* durchdreht auch mal kurz für verwirrung unter den *Simpsons* gesorgt
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 8. Okt 2006, 00:12
@ Dino:
Ging mir nicht anders, bis ich irgendwann mal auf diese Seite gestoßen bin
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#18

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 8. Okt 2006, 01:52
den zauberwürfel hab ich damals verflucht und zerstört, sonst würde ich jetzt dazu verführt sein die seite auszuprobieren
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#19

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 8. Okt 2006, 10:58
@Cöster :

Du hast nicht ganz unrecht, es gibt soviel ich weis sogar einen Beweis das man nicht sehr viele Drehungen braucht , ich meine es waren sogar unter 30.

Die Brute Force habe ich auch mal getestet. Selbst wenn man das mit einer Heuristischen Variante Koppelt geht es nicht.

Das heist es geht schon. Aber mein Algo hat es nur geschafft wenn weniger oder 6 drehungen notwendig waren, d.h 18^6 Möglichkeiten ( unoptimiert ).

Sobald ich den Würfel mehr Verdreht habe ist die Rechenzeit derartig explodiert das nichts mehr ging. Zusätzlich mus man ja noch speichern wie man auf die Lösung kommt. Das hat mein 1 GB RAM Speicher dannn auch noch zerlegt.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#20

Re: Aufgabe: Algorithmus eines Zauberwürfels

  Alt 8. Okt 2006, 11:12
Zitat von Seniman:
Edit: Falls jemand wissen will, wie so ein Rubikwürfel von innen aussieht: Man kann diese Teile ganz einfach auseinanderbauen (und hinterher wieder zusammen). Einfach eine Ebene um etwa 30° drehen und dann eine andere dagegendrehen. Man muss ein wenig Kraft anwenden, aber das klappt. Das ist dann auch gleichzeitig, die Methode für Verzweifelte: Würfelauseinandernehmen und geordnet wieder zusammensetzen. Klappt zwar nicht in 30 sek, aber bestimmt in 5 Minuten.
Hey, verrat doch nicht wie ich die damals immer meine Würfel gelöst hab. Ich hab immer jemanden gesagt er soll die verdrehen, hab mich dann damit 5 Minuten aufs Klo verdrückt ('Da kann ich besser Denken...') und WUPPDI - war er gelöst

Es gibt inzwischen u.a. schon einen Lego-Roboter, der die Lösen kann. Der Link dazu war irgendwann mal bei Userfriendly.org als Link of the Day promoted. Da hat einer so eine Halterung für den Würfel gebaut und einen Roboterarm der den ganzen würfel bzw. die einzelnen Seiten drehen und per Webcam fotografieren konnt. Der hat halt ne Weile gebraucht, ging aber komplett vollautomatisch.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:36 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