Wie löst man eine mathematische Gleichung in einer Programmiersprache?

8

Ich brauche Hilfe, um diese Formel ((n * 2) + 10) / (n + 1) = 3 zu lösen, vorzugsweise in PHP. (Die Zahlen 2, 10 und 3 sollten Variablen sein, die geändert werden können.)

Ich kann diese Gleichung ziemlich leicht auf Papier lösen. Wenn ich jedoch versuche, dies in PHP zu implementieren, bin ich nicht sicher, wo ich anfangen soll. Ich habe mehrere Google-Abfragen und Suchanfragen hier durchgeführt und nichts scheint mir zu helfen. Ich vermisse den richtigen Ansatz, um mit diesem Problem umzugehen.

Alle Tipps und Hinweise wären großartig, und wenn Sie den genauen Code angeben, erläutern Sie bitte, wie Sie zu diesem Ergebnis gekommen sind.

    
xidew 31.08.2011, 07:56
quelle

5 Antworten

4
%Vor%

(Meine Algebra ist alt und flakig, aber ich denke, das ist richtig)

    
DaveyBoy 31.08.2011, 08:13
quelle
15

Sie wollen lösen eine Gleichung, nicht implementieren es. Es besteht ein Unterschied. Das Implementieren der Gleichung wäre so einfach wie das Eintippen. Sie möchten wahrscheinlich einen Gleichheitsoperator ( == ) erstellen.

Gleichungslöser sind komplizierte, komplizierte Dinge. Ich würde nicht versuchen, eins zu machen, wenn es so gute gibt ( Ссылка ), die herumliegen.

    
bdares 31.08.2011 08:01
quelle
5

Sie können Ссылка verwenden, um die mathematischen Ausdrücke in einen Syntaxbaum zu zerlegen und dann die Mathematik zu machen.

((n * 2) + 10) / (n + 1) = 3 würde wie folgt aussehen:

Die Idee ist, den rechten Teilbaum (hier ... ) alle Zahlen, und auf der linken Seite alle unbekannten, genau wie auf dem Papier zu bringen.

Am Ende wirst du haben:

%Vor%

das ist 0. Und da hast du deine Lösung für jeden mathematischen Ausdruck (mit einer unbekannten Variable).

Ich überlasse den Algorithmus Ihnen.

    
Flavius 31.08.2011 08:13
quelle
2

Wie wäre es mit Brute-Force ??!?! könnte langsam und nicht genau sein:

%Vor%

Sie könnten diese Antwort verbessern. In jeder Schleife können Sie den Abstand zwischen der aktuellen Antwort und der gewünschten Antwort berechnen und die Parameter entsprechend anpassen.

Das erinnert mich an meine alte A.I. Klasse =)

Viel Glück

    
pleasedontbelong 31.08.2011 08:19
quelle
0

So lösen Sie diese Gleichung in C # mit der Symbolism Computeralgebrenbibliothek:

%Vor%

Folgendes wird auf der Konsole angezeigt, wenn dieser Code ausgeführt wird:

%Vor%     
dharmatech 27.10.2015 03:36
quelle