![]() |
Variablen Algoritmus
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? |
Re: Variablen Algoritmus
Nachdem dir die Idee ja schon klar ist wird dir wohl keiner Helfen, hier werden Grundsätzlich keine Hausaufgaben gemacht.
|
Re: Variablen Algoritmus
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... |
Re: Variablen Algoritmus
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:
Du siehst bei Rückwärtsgehn sehr schnell das du recht viele Freuheiten hast und es daher sehr viele Lösungen gibt.
9341
+1071 ----- 10412 Wirklich fest ist damit nur der Anfang. Der rest ergibt sich dann aus einem Unterbestimmten gleichungsystem.
Delphi-Quellcode:
ich hoffe das hilft dir ;)
9
+10 -------- 10 [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. |
Re: Variablen Algoritmus
jepp hat mir geholfen danke :) jetzt wird es mir so langsam klar ^^
|
Re: Variablen Algoritmus
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; |
Re: Variablen Algoritmus
joa genauso könnt man's in Delphi realisieren :D
Jetzt muss ich den Mist nur noch in Java umformen :wall: ...mach ich aber selber...will ja den Lerneffekt haben :) Aber herzlichen Dank! |
Re: Variablen Algoritmus
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? :-D Warum so kompliziert und erst in Delphi? Gruß Victor |
Re: Variablen Algoritmus
Hallo,
entstschuldige aber das kann so nie gelaufen sein!
Delphi-Quellcode:
Du solltest schon die einfachsten Regeln der Variablen bzw der Typdefinition kennen!
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; s1, s2 sind als Strings deklariert. Du weist ihnen (den Variablen) aber Integers zu. Bitte überprüfe das nocheinmal.
Delphi-Quellcode:
Erklär mir doch bitte mal diese Zeile. Vielleicht kann ich was dazulernen.
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])
Grüsse Rainer |
Re: Variablen Algoritmus
Zitat:
Zitat:
Die Zeile sollte so sogar stimmen, obwohl ich das persönlich so nie hinschreibe. Weiß jetzt nicht genau, ob Delphi da meckert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz