AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Variablen Algoritmus

Ein Thema von netscanner · begonnen am 29. Sep 2008 · letzter Beitrag vom 5. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#1

Variablen Algoritmus

  Alt 29. Sep 2008, 19:00
Hallo Leute,
ich verzweifel gerade an einer Aufgabe,,,,

Aufgabe: Give-More-Money-Problem
• Entwirf einen Algorithmus für das Give-More-Money-Problem, d.h. finde alle gültigen Variablenbelegungen
∈ {0, . . . , 9} und (M ungleich 0), so dass folgende Gleichung erfüllt wird:

G I V E
+ M O R E
---------
M O N E Y

Mir ist klar, dass es am sinnvollsten ist mit verschachtelten for Schleifen, die die einzelnen Variablenwertbereiche durchlaufen zu arbeiten.
Danach müsste ich die "Ergebnisse" der For schleifen jedoch irgendwie auswerten...und da stoße ich im Moment an meine grenze. Kann mir jemand helfen?
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

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

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:07
Nachdem dir die Idee ja schon klar ist wird dir wohl keiner Helfen, hier werden Grundsätzlich keine Hausaufgaben gemacht.
Uwe
My Sitewww.Corpsman.de

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

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:10
hey...
mir ist 1. nur ein Teil der Idee klar. Der eigentliche Algo fehlt mir aber noch (die Auswertung).
2. sind das keine Hausaufgaben sondern Übungen, die man freiwillig machen kann. Wollte mich wieder ein bisschen auf die Uni vorbereiten. Habe also keinen "Druck" eine Lösung zu bekommen...trotzdem wär es schön wenn mir jemand nen Gedankenanstoß geben könnte...würd einfach gerne wissen, wie das funktioniert...
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

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

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:14
OK,

Also ich hab da mal dran rumprobiert.

M = 1 ist klar

denn das entsteht aus dem Übertrag.

Von da an rechnest du Rückwärts

so komme ich auf z.b.

Delphi-Quellcode:
 9341
+1071
-----
10412
Du siehst bei Rückwärtsgehn sehr schnell das du recht viele Freuheiten hast und es daher sehr viele Lösungen gibt.


Wirklich fest ist damit nur der Anfang. Der rest ergibt sich dann aus einem Unterbestimmten gleichungsystem.
Delphi-Quellcode:
 9
+10
--------
10
ich hoffe das hilft dir

[Edit]

Da du alle Gültigen Varianten ausprobieren sollst ist dieser Ansatz aber nicht so Optimal.

Bau dir eine Function die die 8 Variablen bekommt und zurückgibt ob die Gleichuzng damit erfüllt ist.

Dann kannst du einen Brute Force machen.
Uwe
My Sitewww.Corpsman.de

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

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:16
jepp hat mir geholfen danke jetzt wird es mir so langsam klar ^^
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

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

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:21
Die Funktion ist also

Delphi-Quellcode:

(*
die Zahlen entsprechen der Variablennummer :

1234
+5674
-----
56849
*)


type Tfrage = array [1..9] of Integer;

Function isValid(const a:Tfrage):Boolean;
var s1,s2,s3:string;
begin
  s1 := a[1]+a[2]+a[3]+a[4];
  s2 := a[5]+a[6]+a[7]+a[4];
  s3 := inttostr(strtoint(s1)+strtoint(s2));
  if length(s3) = 5 then
    result := (s3[1] = a[5]) and (s3[2] = a[6]) and (s3[3] = a[8]) and (s3[4] = a[4]) and (s3[5] = a[9])
  else
    result := false;
end;
Uwe
My Sitewww.Corpsman.de

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

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Variablen Algoritmus

  Alt 29. Sep 2008, 19:22
joa genauso könnt man's in Delphi realisieren
Jetzt muss ich den Mist nur noch in Java umformen ...mach ich aber selber...will ja den Lerneffekt haben
Aber herzlichen Dank!
Martin
  Mit Zitat antworten Zitat
LinuxFan

Registriert seit: 9. Jul 2007
Ort: Bensheim
20 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: Variablen Algoritmus

  Alt 1. Okt 2008, 00:01
Erwischt!

Haha, ich bin erstaunt, wie schnell der Google-Bot war.

Habe gerade im I-Net nach dem "More Money Problem" gesucht und bin hierher gestoßen, nach dem ich feststellen musste, dass es wohl kein "wirkliches" Problem ist (wie z.B. das mit den 3 Toren mit 2 Ziegen und einem Hauptgewinn) sondern eher etwas ausgedachtes.

Informatik Vorkurs, TU-Darmstadt, ja?

Warum so kompliziert und erst in Delphi?

Gruß
Victor
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#9

Re: Variablen Algoritmus

  Alt 1. Okt 2008, 05:38
Hallo,

entstschuldige aber das kann so nie gelaufen sein!

Delphi-Quellcode:
type Tfrage = array [1..9] of Integer;

Function isValid(const a:Tfrage):Boolean;
var s1,s2,s3:string;
begin
  s1 := a[1]+a[2]+a[3]+a[4];
  s2 := a[5]+a[6]+a[7]+a[4];
  s3 := inttostr(strtoint(s1)+strtoint(s2));
  if length(s3) = 5 then
    result := (s3[1] = a[5]) and (s3[2] = a[6]) and (s3[3] = a[8]) and (s3[4] = a[4]) and (s3[5] = a[9])
  else
    result := false;
end;
Du solltest schon die einfachsten Regeln der Variablen bzw der Typdefinition kennen!
s1, s2 sind als Strings deklariert. Du weist ihnen (den Variablen) aber Integers zu.
Bitte überprüfe das nocheinmal.

    result := (s3[1] = a[5]) and (s3[2] = a[6]) and (s3[3] = a[8]) and (s3[4] = a[4]) and (s3[5] = a[9]) Erklär mir doch bitte mal diese Zeile. Vielleicht kann ich was dazulernen.

Grüsse
Rainer
  Mit Zitat antworten Zitat
LinuxFan

Registriert seit: 9. Jul 2007
Ort: Bensheim
20 Beiträge
 
RAD-Studio 2010 Arc
 
#10

Re: Variablen Algoritmus

  Alt 5. Okt 2008, 15:49
Zitat von WS1976:
Hallo,

entstschuldige aber das kann so nie gelaufen sein!

Delphi-Quellcode:
type Tfrage = array [1..9] of Integer;

Function isValid(const a:Tfrage):Boolean;
var s1,s2,s3:string;
begin
  s1 := a[1]+a[2]+a[3]+a[4];
  s2 := a[5]+a[6]+a[7]+a[4];
  s3 := inttostr(strtoint(s1)+strtoint(s2));
  if length(s3) = 5 then
    result := (s3[1] = a[5]) and (s3[2] = a[6]) and (s3[3] = a[8]) and (s3[4] = a[4]) and (s3[5] = a[9])
  else
    result := false;
end;
Ich denke, an dieser Stelle wurde das Prinzip erklärt. Der Code muss ja nicht unbedingt funktionstüchtig sein. Nur von der Logik muss er ja stimmen.

Zitat von WS1976:
    result := (s3[1] = a[5]) and (s3[2] = a[6]) and (s3[3] = a[8]) and (s3[4] = a[4]) and (s3[5] = a[9]) Erklär mir doch bitte mal diese Zeile. Vielleicht kann ich was dazulernen.

Grüsse
Rainer
"(...) and (...) and (...)" ist nichts anderes als ein Boolean-Wert.
Die Zeile sollte so sogar stimmen, obwohl ich das persönlich so nie hinschreibe. Weiß jetzt nicht genau, ob Delphi da meckert.
Victor-Philipp Negoescu
ViaThinkSoft
http://www.viathinksoft.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:41 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