Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Gleichungen mit lauter Unbekannten lösen
Andy71 - Mi 02.12.09 14:51
Titel: Gleichungen mit lauter Unbekannten lösen
Hallo
Ich hoffe, dass ich hier mit meinem Anliegen richtig bin.
Ich möchte mir ein kleines Tool schreiben, mit dem ich mehrere Gleichungen mit lauter Unbekannten lösen kann.
z.B.:
a b c - d e f = e f g
g h f - g f = a e i
d g * e f = f b g
a b c - g h f = d g
d e f / g f = e f
e f g + a e i = f b g
Das Tool soll herausfinden, welche Ziffer hinter welcher Variabeln steckt.
Leider habe ich grad keine Ahnung, wie ich die Sache angehen kann. Hat jemand einen einfachen, verständlichen Tipp für mich? Ich bin Anfänger was das Programmieren angeht und würde mich über Ansätze, die mich auf den richtigen Weg bringen freuen. Mein Gedanke ist, es mit Brute-Force zu lösen. Aber gibt es vielleicht einen einfacheren weg? Für Brute-Force brauche ich ja zwingend die Rekursion, die mir aber Schwierigkeiten bereitet, da ich sie noch nicht richtig verstehe.
Für jede Hilfe bin ich dankbar.
Gruß
Andy
Tilo - Mi 02.12.09 15:00
Zum lösen dieses Problem eignet sich sehr gut eine Interferenzmaschine.
Wenn Du die Interferenzmaschine nicht selber schreiben möchtes schau dir mal die Sprache ProLog an.
Hab in Delphi mal ein Programm geschrieben, welches Prolog Quellcode ausgeben hat.
Porblemstellung war das lösen von Rätseln wie HAUS+HAUS=STADT
Kha - Mi 02.12.09 15:09
:welcome:
Brute-Force ist in den allermeisten Fällen die einfachste Lösung ;) . Und Rekursion brauchst du dafür nicht unbedingt, denn jedwede Rekursion lässt sich auch durch Schleifen ausdrücken. In diesem Fall ganz naiv: Geschachtelt eine Schleife von 0 bis 9 für jeden Buchstaben, damit hast du alle 10^9 Kombinationen - keine ernstzunehmende Datenmenge für einen Computer. Reduzieren lässt sich der Aufwand, indem manche Variablen nicht durchprobiert, sondern durch andere ausgedrückt werden.
@Tilo: Meinst du möglicherweise eine Inferenzmaschine :zwinker: ?
Andy71 - Mi 02.12.09 16:00
Vielen Dank euch Beiden für die schnellen Antworten.
@Tilo
Prolog sieht interessant aus. Ich hab mir mal die Open-Source Variante PopLog installiert und schau es mir mal an. Trotzdem werde ich versuchen es selbst zu schreiben. Nur so kann man ja lernen.
@Kha
Ich werd es erstmal mit den geschachtelten Schleifen versuchen und irgendwann vielleicht die Rekursion verwenden, wenn ich das mal begriffen habe.
Tilo - Mi 02.12.09 17:10
Kha hat folgendes geschrieben : |
@Tilo: Meinst du möglicherweise eine Inferenzmaschine :zwinker: ? |
ja, Blöde Orthografie
@Andy71
Für einige Prologversionen/Programme gibt es auch die Möglichkeit zur Steuerung aus Delphi-Programmen heraus.
Fals es Dich interessiert such ich mal den Quelltext dazu.
könnte aber etwas dauern, da der Quelle unter Umständen auf einer CD liegt.
Andy71 - Mi 02.12.09 17:22
Au ja, das wär nett. Die PopLog-Version ist leider nur für 32-Bit Systeme. Ich programmiere unter Win7 64-Bit. PopLog hab ich mir in VirtualPC installiert. Kennst du vielleicht eine freie Version von Prolog die man in einer 64-Bit Umgebung installieren kann?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!