Autor Beitrag
Andy71
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 02.12.09 14:51 
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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mi 02.12.09 17:10 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:


@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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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?
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mi 02.12.09 20:35 
Hey,

DAS könnte dir auch helfen...

MfG Bergmann

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^