AGB  ·  Datenschutz  ·  Impressum  







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

c't Puzzle

Ein Thema von janjan · begonnen am 24. Mär 2003 · letzter Beitrag vom 24. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2      
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#1

c't Puzzle

  Alt 24. Mär 2003, 11:54
Infos gibts in der aktuellen c't oder hier:

http://www.heise.de/ct/puzzle/

Ich zerbreche mir jetzt schon seit ein paar Tagen den Kopf wie das zu lösen sein könnte und komm auf keinen grünen Zweig. Der Artikel im Heft hilft nicht viel weiter, mittendrin hört es mit dem Verständniss einfach auf.

Wer von euch hat sich das mal angekuckt und evtl. schon ein paar Gedanken dazu gemacht?
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#2
  Alt 24. Mär 2003, 12:34
Meinst du, wie man das mit Delphi löst, oder generell?
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#3
  Alt 24. Mär 2003, 12:37
Ob man das jetzt in Delphi oder sonstwie löst ist eigentlich egal, mir gehts eher um das Verfahren/die Algorithmen die dahinterstehen.
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#4
  Alt 24. Mär 2003, 13:04
*grübel*

also ich würde mal so anfangen, eine Matrix von 3x4x5 definieren.
Diese würde ich dann so mit den Würfeln belegen, dass schonmal C und T
zu sehen sind.
Dann geht es weiter die einzelnen Apostrophs durchzuprobieren.
Einfach eins nehmen und ausprobieren.

Den Rest der Matrix die leer ist, einfach wahllos mit Steinen füllen, bis nix mehr reinpasst.
Jetzt würde ich versuchen durch austauschen und verschieben Platz zu gewinnen, und dies solange bis alle Steine reingehen.
Wenns net funzt ein anderes Apostroph ausprobieren. Kann natürlich passieren, dass man die Lösung dabei um einen Versuch verpasst
jenachdem, wielange man ausprobieren lässt, man kann natürlich dabei
auch alle Möglichkeiten systematisch durchprobieren, aber des wird glaub ich zuviel!
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#5
  Alt 24. Mär 2003, 13:21
Es geht darum alle Möglichen Lösungen zu finden, da wirst du mit wahllos ausprobieren nicht weit kommen.

Was du das so schreibst von wegen 'verschieben' und 'vertauschen' hört sich einfacher an als es in Wirklichkeit ist. Ich such da seit ein paar Tagen nach einer sinnvollen Lösung, aber je länger ich drüber nachdenke, desto werd ich...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#6
  Alt 24. Mär 2003, 13:28
Naja alle Möglichkeiten zu finden ist nahezu so komplex wie Schachstellungen zu berechnen. Es sind einfach zu viele!!

Das vertauschen an sich sollte nicht das Problem sein.
Du untersuchst die maximal-Ausmaße der Steine, die du vertauschen
willst und schaust ob der eine irgendwie an die andere Position
passt. Da du eine Matrix benutzt kannst du einfach die nötigen Matrix-
Felder mit dem Stein abgleichen. Dabei kannst du untersuchen, welche
Einzelwürfel im Stein nicht passen würden. Dann legst du eine Grenze fest, ab wieviel blockierten Einzelsteinen du weitersuchst. Wenns nur
einer ist, kannst du mal schauen, ob verschieben oder drehen weiterhilft, oder du behälst diesen Stein im Speicher und tauscht ihn mit dem nächsten...
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#7
  Alt 24. Mär 2003, 13:59
Mal logisch ganz von vorne:

-Das Puzzle besteht aus 3*4*5 Teilen, das Ergibt eine Anzahl von *kopfrechnen* 60 Feldern.

-Auf die 60 Felder müssen 12 Objekte unterschiedlicher Größe gepackt werden.

-Für ein Teil gibt es 24 Möglichkeiten der räumlichen Orientierung.

-Ich lege für jedes Teil ein 'Zentrum' fest. Das heißt man legt ein Feld eines Teils willkürlich als Zentrum fest.

Angenommen ich versuche nur die Zentren der Objekte in den Würfel zu legen kommt man auf eine große Zahl, nämlich 60^12. Da sind aber auch Fälle drin, in denen zwei oder mehr Zentren auf einem Feld liegen. Die Anzahl der Möglichkeiten 12 Zentren auf 60 Felder ohne Überschneidungen zu legen ist

60*59*58*57*56*55*54*53*52*51*50*49

Dazu kommen dann noch die 24 Möglichkeiten ein Teil im Raum zu lagern

Angenommen man kann 10.000 Positionen pro Sekunde testen, dann dürfte es (wenn ich mich nicht verrechnet habe) ca. 200.000 Jahre dauern bis man fertig ist...


Ein wenig ZU lange für meinen Geschmack 8)
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#8
  Alt 24. Mär 2003, 14:02
hä? liest du auch was ich schreibe?
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#9
  Alt 24. Mär 2003, 14:15
Genau das selbe könnt ich dich fragen Es geht darum die Anzahl der Möglichen Lösungen zu finden, die Konfiguration mit dem c't oben ist optional. laut dem Artikel gibt es ca. 100.000 Lösungen.

Ich wollt nur mal kucken wie viele Möglichkeiten es maximal geben kann und ob man eventuell mit Brute-Force weiter kommt. Das das nicht klappt hab ich dann auch schnell festgestellt.

Ich denke es läuft daraus hinaus sich im vorhinein zu überlegen welche Positionen das Zentrum für ein Teil in einer nestimmten räumlichen Lage einnehmen kann.

Am Beispiel von diesem Kreuzförmigen Teil kann man das von 60*24=1440 auf 30 Möglichkeiten reduzieren...
Die Wichtigkeit eines Postings im Forum ist reziprok zur Anzahl der enthaltenenen, kumulierten Ausrufungszeichen!!!
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#10
  Alt 24. Mär 2003, 14:20
Ich wunderte mich nur warum du mir vorrechnest, dass das solange dauern würde, wenn ich grad zuvor geschrieben hatte, das es zuviel wäre
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:35 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