Rechnen in Java mit Äpfel und Birnen?
Hey Programmierfreunde und Mathematiker und Informatiker,
diesmal ist mit leider keine bessere Frage eingefallen, aber das Prinzip ist trotzdem recht simpel, wenn man es aus der Schule so gelernt hat.
Wir stellen uns mal folgende Gleichung vor:
... = 3Äpfel + 2Birnen
alternativ: ... = 3x + 2y
Die linke Seite vernachlässigen wir im gesamten Fall.
Das Prinzip ist klar. Man darf die Äpfel nicht mit den Birnen verrechnen. 3 Äpfel und 2 Birnen bleiben so, selbst wenn ich sie miteinander addiere. Genauso verständlich ist auch, wenn ich ein Apfel hinzurechne habe ich auf einmal 4Äpfel und 2Birnen.
Frage: Wie mache ich es in Java?
Situation: Ich habe folgende Beispielgleichung:
1 = 29 - 1 * (144 - 4 * 29)
Dabei sind die Zahlen 144 meine Äpfel und 29 meine Birnen. Diese dürfen unter keinen Umständen mit was anderem verrechnet werden nur mit sich selbst.
Diese Gleichung entsteht bei der Anwendungen des Erweiterten Euklidischen Algorithmus.
Mag mir jemand erklären, wie ich eine solche Rechenoperation in Java anwende?
MfG
3 Antworten
Was hast Du denn vor?
Jede Programmiersprache rechnet mit Variablen und Zahlen.
Wenn es dir um die Variablen geht und Du einfach eine Formel mit verschiedenen Werten ausrechnen können willst, dann ist jede Programmiersprache von Grund auf dafür gemacht, das abbilden zu können: Eine Methode mit zwei Variablen, die damit irgendetwas rechnet.
Wenn Du die Gleichung aber umstellen willst, ohne die Variablen aufzulösen, dann gibt's dafür nichts und Du musst es selber entwickeln. Und das dürfte ziemlich aufwändig sein, immerhin musst Du zuerst die Gleichung interpretieren und anschließend diverse Umstellungs-Regeln implementieren.
Wie gesagt, Java kennt nur Zahlen und Zahlen kann man beliebig (im Wertebereich) zusammen rechnen. Wenn dir das nicht gefällt, musst Du die Berechnung manuell entwickeln.
Das kannst du in Java nicht direkt so abbilden.
Du musst zuerst auf Mathematischen Wege deine Gleichung so umformen, dass diese rein nummerisch darstellbar ist.
Also wenn du hast in einem Korb sind Früchte davon sind 4 Äpfel und 4 Birnen, dann ist dein Korb in Java nicht eine Variable vom Typ int sondern eben ein Objekt mit:
class Korb
{
public int aepfel = 0;
public int birnen = 0;
}
Wenn du jetzt 3 Äpfel da rein legst sagst du eben:
Korb obstkorb = new Korb();
obstkorb.aepfel += 3;
Wenn du ein Gleichungssystem hast kannst du das am Ende auch nur so nummerisch lösen. Java unterscheidet hier nicht zwischen Äpfel und Birnen sondern das musst du als Programmierer machen.
so wie bei deiner Kopfrechnung. Benutze für Äpfel und Birnen andere Variablen. Die Addition mit den Äpfeln hat dann mit der bei den Birnen nichts zu tun, die müssen nacheinander ausgeführt werden.
ok, habe ich vielleicht nicht erwähnt. Guter Einwand. Beim erweiterten euklid. Alg. benötigt man am Ende eine Gleichung der Form: 1 = x * Äpfel + y * Birnen. Damit ich diese Form bekomme, darf ich ja nicht meine Äpfel und Birnen mit was anderem verrechnen.