Anzahl der Variablen in einer Formel bestimmen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
williwillswissen
User
Beiträge: 1
Registriert: Montag 14. Januar 2013, 21:26

Hi!

Nachdem ich nun schon 3 Tage erfolglos an meiner Hausübung arbeite, probier ich mal hier nachzufragen; vielleicht hat ja jemand eine Idee.

Und zwar sollen wir eine Funktion schreiben, die von einer beliebigen Formel die Anzahl aller Variablen auflistet. (Also z.B. bei der einfachen Formel 2x + y^x = 1/x soll dann raus kommen "x: 3, y: 1"). Das Ganze soll dann natürlich auch mit komplexen Formeln und mehreren Gleichungssystem funktionieren.

Wir dürfen allerdings NUR .operator(), .operands() und op(*arg) verwenden; alles, was in irgendeiner Form mit substitute zu tun hat, ist bei dieser Übung NICHT erlaubt.

Hat vielleicht irgendjemand eine Idee? :cry:

mfg
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Was hast Du denn schon versucht?
Und was ist mit .operator(), .operands() und op(*arg) gemeint?
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bitte poste mindestens den Inhalt von `.operator()`, `.operands()` und `op(*arg)`. Wir sind zwar relativ gut im Raten und ich kann mir auch in etwa denken, was die 3 Kollegen machen, aber eine sichere Grundlage wäre schon ganz gut.

Und nicht böse gemeint, aber mach dir bitte beim nächsten Mal klar, dass wir hier die genaue Aufgabenstellung nicht kennen. So wie du deine Frage formulierst hast, würdest du sicher auch mit vielen Fragezeichen davor stehen, wenn du dich sozusagen mal in dein Gegenüber versetzen möchtest. Das sind einfach viel zu wenig Informationen, die du mit deiner Eingangsfrage geliefert hast...
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Ich rate jetzt trotzdem mal: Deine Formel wird als Zeichenkette dargestellt. In dieser Zeichenkette befinden sich alle möglichen Zeichen, darunter auch Buchstaben. Dies sind die Variablenbezeichner (z.B. "x"). Nun gehst Du die Zeichenkette Zeichen für Zeichen durch und merkst Dir, welche Buchstaben Du findest und wieviel davon. Ein Dictionary eignet sich für die Ergebnisablage ganz gut. Und falls dies richtig geraten ist und Du die Lösung hast, dann schaue mal in der Python-Dokumentation nach 'defaultdict'.
BlackJack

Ergänzend zu kbr: Nach `Counter` könntest Du auch schauen. Wenn die Namen in der Zeichenkette mehr als einen Buchstaben haben dürfen, dann ist das `re`-Modul nützlich.

Ich vermute ja eher, dass es Klassen gibt, welche die Formel repräsentieren und das diese die genannten Methoden besitzten. In dem Fall müsstest Du uns tatsächlich mal verraten wie die aussehen beziehungsweise aus welcher Bibliothek die kommen und wo man sich die anschauen kann. `sympy` scheint es zum Beispiel nicht zu sein.
Antworten