Gleichung (WS99 Aufgabe 6)

Beleg WS99/SS00, Studium, Home

Diese "langweiligste" der 8 Aufgaben sollte meiner Meinung nach als eine Herausforderung angesehen werden, einen möglichst effizienten Algorithmus zur Lösung der Problemstellung zu entwickeln. Hier ist meine Lösung, zu sehen ist ja nicht viel :-)

Das Applet-Tag wird nicht verstanden.

Im Textfeld Zahlen werden die Zahlen durch Leerzeichen getrennt in der Reihenfolge eingegeben, in der sie in der Formel vorkommen sollen. Das Textfeld Summe enthält den gewünschten Wert des Terms. Wenn Mit DIV aktiviert ist, wird auch die Division als Operation verwendet, sonst nur Addition, Subtraktion und Muktiplikation (bei deaktivierter Checkbox ist die Geschwindigkeit deutlich höher).
Beim Klick auf Berechnen wird eine neue Lösung der Aufgabe gesucht. Im Textfeld Loesung wird "working..." angezeigt, solange die Berechnung läuft. Sie  kann jederzeit mit einem erneuten Klick auf Berechnen gestoppt werden. Wenn die Berechnung fertig ist, wird die gefundene Lösung angezeigt. Wurde keine gefunden oder die Berechnung abgebrochen, wird nur ein "-" angezeigt.
Wenn nur die Summe verändert wird, also die Zahlen und Mit DIV unverändert sind, führt ein Klick auf Neue Summe dazu, dass mit den bereits berechneten Werten ein Term für die neue Summe angezeigt wird. Wurden die Zahlen oder Mit DIV verändert oder liegen keine Berechnungsergebnisse vor, wird eine neue Berechung gestartet. (Diese Option habe ich eingebaut, weil das Programm bei einem Durchlauf einen Term für jede mögliche Summe ermittelt und dann die gewünschte auswählt.)
Berechnen führt in jedem Fall eine neue Berechnung durch. Es wird von allen möglichen Lösungen nur eine zufällig ausgewählte ermittelt, das bedeutet, bei wiederholten Rechendurchläufen können verschiedene Lösungsterme ausgegeben werden.
Meine bisherigen Lösungen zur Beispielaufgabe (1 2 3 4 5 6 7 8 9 -- 2000) sind hier aufgelistet. Auf meinem Rechner zuhause braucht das Applet fuer das Beispiel eine Minute (in Netscape), bzw. eine halbe Minute (im Appletviewer und im Internet Exploder).

Source
GleichungApplet.java Das Applet
GleichungValues.java Berechnung des gesuchten Terms
GleichungBaum.java Baum zur Darstellung eines Terms
Perm.java Methoden zur Bestimmung von Permutationen
Source (9kb)
Kompiliert (10kb)


updated 28.11.2001
Christian Semrau