AGB  ·  Datenschutz  ·  Impressum  







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

Rekursion-Problem

Ein Thema von LiS · begonnen am 27. Jun 2005 · letzter Beitrag vom 27. Jun 2005
Antwort Antwort
LiS

Registriert seit: 3. Dez 2004
87 Beiträge
 
Turbo Delphi für Win32
 
#1

Rekursion-Problem

  Alt 27. Jun 2005, 18:28
Hallo!

Da ich momentan nicht mehr von dem berühmten Zauberwürfel "Rubiks Cube" loskomme, habe ich mir vorgenommen, ein Programm zu schreiben, welches die Drehkombinationen für mich herausfindet. Um also eine optimale Kombination durch Probieren herauszufinden habe ich eine Rekursion programmiert die den Würfel auf alle möglichen Arten verdreht. Wie bringe ich das Programm jetzt dazu, nicht sofort in die Tiefste Ebene der Rekursion zu gehen, sondern erstmal in alle Stellungen, die durch einmal Drehen erreichbar sind, dann alle, die durch zweimal Drehen erreichbar sind... Wenn ich die Simulation einfach mehrmals mit verschiedenen Maximaltiefen laufen lasse, wäre ja jedesmal der Größte Teil mehrmals durchgelaufen.
Ich hoffe, mein Problem ist ausreichend geschildert.

MfG Leif
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: Rekursion-Problem

  Alt 27. Jun 2005, 18:34
du kannst nen heap machen, auf den du die jeweils neue situation pushst, und bei abarbeiten jeweils den ersten eintrag abarbeiten. (das hab ich mir grade mal so überlegt und das ist von speicherverbrauch und andauernden allozierungen her wohl nicht ideal... aber es funktioniert)
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Interceptor
Interceptor

Registriert seit: 28. Mai 2004
Ort: Würzburg
118 Beiträge
 
Delphi 6 Professional
 
#3

Re: Rekursion-Problem

  Alt 27. Jun 2005, 18:35
Vielleicht hilft dir der Link hier weiter:

http://www.dsdt.info/tutorials/rekursion/?page=1
David
~ Nichts ist wahr, alles ist erlaubt ~
  Mit Zitat antworten Zitat
LiS

Registriert seit: 3. Dez 2004
87 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Rekursion-Problem

  Alt 27. Jun 2005, 18:55
Das Tutorial hab ich mir angesehen, es hilft mir leider nicht weiter.
@nailor: Die Möglichkeit verstehe ich nicht; was ist ein heap? und was bedeuted pushen in diesem Zusammenhang?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Rekursion-Problem

  Alt 27. Jun 2005, 19:21
@LIS: Also wenn ich dein Vorhaben richtig verstanden habe, willst du durch reines Rumprobieren eine Lösung für deinen Zauberwürfel finden. Dazu wirst du aber einen effektiveren Algo brauchen. Es gibt zisch Milliarden verschiedene Kombinationen. Die alle Durchzuprobieren dauert Jahre.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Rekursion-Problem

  Alt 27. Jun 2005, 19:36
Hallo Leif, schau mal hier, da ist eine wesentlich bessere Strategie, als deine Brute-Force-Tatik

http://de.wikipedia.org/wiki/Rubiks_...e.22_Strategie

Wenn du das nicht schaffst, könnten wir ja mal nächste Woche gemwinsam versuchen, den Algo nach Delphi zu übertragen
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:21 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