Diskussion:Operatorrangfolge

Letzter Kommentar: vor 10 Monaten von Daniel5Ko in Abschnitt Auswertungsreihenfolge, Syntax und Semantik

Vorzeichen vor Potenzierung? Bearbeiten

Wird in der Mathematik wirklich das Vorzeichen vor der Potenzierung ausgewertet, gibt es dafür Belege? Dann würde   gleichbedeutend sein zu  , ich würde es aber eher als   verstehen. -- Memset 11:00, 24. Jun 2006 (CEST)

Stimmt:  , auch meine heimischen Nachschlagewerke (Mathematik-Meyer; Duden Mathematik; dtv-Atlas Mathematik udgl.) schreiben für die andere Lesart explizit  ; für zusätzliche Sicherheit habe ich zusätzlch den Mathematiker zu meiner Rechten gefragt.
Ich nehme an, der Autor der inkriminierten Zeilen kommt (wie so viele Wikipedia-Autoren) aus dem Computerumfeld - dort ist es vielfach so, wie im Artikel behauptet (z.B. "dc" und verschiedene Programmiersprachen).
Nachdem ich der erste bin, der auf deinen Einwand antwortet, nehme ich an, dass hier nicht viele mitlesen und streiche ich die falsche Aussage selber.
Viele Grüße, --GottschallCh 21:22, 29. Jun 2006 (CEST)
...wobei ich gerade sehe, dass ohnedies ich die falsche Formulierung verursacht habe. Peinlich. --GottschallCh 21:26, 29. Jun 2006 (CEST)
Excel und OpenOffice und auch einige Taschenrechner werten -a^b ebenfalls als (-a)^b aus. -- 46.115.0.162 00:34, 9. Jun. 2011 (CEST)Beantworten
Ich denke, dass überall dort, wo nicht zwischen Vorzeichen-Minus und Rechenzeichen-Minus unterschieden wird, die Potenzierung Vorrang vor dem Minuszeichen hat. Aber z.B. der grafische Taschenrechner TI-83 Plus, der eine eigene Taste für das Vorzeichen-Minus hat, wertet die Potenzierung trotzdem vor dem Minus aus. Gibt man -2^2 ein (mit Vorzeichen-Minus), so erhält man als Ergebnis -4. -- Digamma 06:23, 9. Jun. 2011 (CEST)Beantworten

Anzeigeproblem? Bearbeiten

Bei mir wird das Minuszeichen vor dem a im Ausdruck " " angezeigt, in " " und " " aber nicht, obwohl es im Quelltext der Seite vorhanden ist: Windows 10, Google Chrome. Screenshot notfalls verfügbar. Das passiert natürlich auch auf anderen Seiten mit dem <math>-Ausdruck. An was genau kann das liegen? Außer am "doofen Chrome-Browser", mich interessiert eher, an was genau und ob das weithin bekannt ist. Mit Microsoft Edge und Firefox funktioniert es... --91.59.226.18 19:14, 14. Jan. 2021 (CET)Beantworten

Der richtige Ort, das anzusprechen, ist wahrscheinlich Hilfe Diskussion:TeX. --Digamma (Diskussion) (ohne (gültigen) Zeitstempel signierter Beitrag von Digamma (Diskussion | Beiträge) 22:10, 14. Jan. 2021 (CET))Beantworten

log, sin etc. Bearbeiten

Welche Priorität haben einstellige Operatoren wie sin oder log? Konkret:  , ist das als   oder als   zu lesen? Ich denke, das zweite ist richtig, habe dafür aber keinen Beleg.

Dieses hängt von der Programmiersprache oder der definierte Operatorrangfolge ab (man kann unterschiedliche definieren, hängt nicht unbedinge mit ein- oder zweistellige Operatoren zusammen). Im konkreten Fall bindet der Potenz stärker als log, also das zweite. --WiseWoman 00:07, 27. Mär. 2008 (CET)Beantworten

Operator_rang_folge vs. Auswertungs_reihen_folge Bearbeiten

Es sollte vielleicht doch darauf hingewiesen werden, dass das beides nicht das gleiche ist. Insbesondere in Programmiersprachen ist in der Regel die Operratorrangfolge durch die Sprachsyntax festgelegt, die Auswertungsreihenfolge, etwa wenn bestimmte Operatoren/Operationen Seiteneffekte haben, jedoch nicht. --RokerHRO 11:14, 18. Mär. 2008 (CET)Beantworten

Genau. Aber warum ist "Auswertungsreihenfolge" noch drinne? Das hat mit der Programmiersprache zu tun, ob von innen nach aussen, oder stur links nach rechts (Occam!) ausgewertet wird. Zwei Operatoren können auf derselben Operatorrangfolge sein, aber in unterschiedlichen Auswertungsreihenfolgen drinne sein. Seufz, müssen wir darüber streiten? --WiseWoman 00:06, 27. Mär. 2008 (CET)Beantworten
Es wird im Moment immer wieder rausgenommen, ein anderer nimmt den Begriff "Auswertungsreihenfolge" wieder rein. Ein klassischer Edit-War... :-(
Außerdem: Wenn ich dich richtig verstehe, verstehst du unter der Auswertungsreihenfolge, ob ein Ausdruck a◦b◦c wie (a◦b)◦c oder wie a◦(b◦c) zusammengefasst wird. Dies wird im Allgemeinen aber als "Assoziativität" bezeichnet.
In Programmiersprachen, die Ausdrücke mit Seiteneffekten zulassen (wie z.B. C), ist mit Auswertungsreihenfolge jedoch die Reihenfolge gemeint, mit der eben diese Seiteneffekte ausgewertet (und ausgeführt) werden. Diese ist in C bei vielen Operanden nicht definiert. Also ob in einem C-Ausdruck wie x=f(x)+g(x) zuerst die Funktion f oder zuerst g ausgeführt wird, ist nicht festgelegt. Auf Systemen mit mehreren Prozessoren könnten sie sogar gleichzeitig ausgeführt werden! Jedoch ist festgelegt, dass die Addition erst ausgeführt wird, nachdem beide Funktionen fertig sind und ihr Ergebnis geliefert haben, und danach erst die Zuweisung erfolgt.
Da es in der Mathematik IMHO keine Ausdrücke mit Seiteneffekten gibt, existiert dort auch der Begriff der Auswertungsreihenfolge so nicht. --RokerHRO 20:12, 28. Mär. 2008 (CET)Beantworten
Ich finde es auch wichtig, zu erwähnen, dass die Assoziativität von op in einem Ausdruck wie a op b op c nicht die Reihenfolge beeinflusst, in der a, b und c ausgewertet werden. Wenn ich das hinschreibe, sollte es doch keinen Edit-War geben?! -- UKoch 23:19, 7. Mär. 2011 (CET)Beantworten
Doch. Ich war schneller. ^^ Ich weiß jetzt nicht, ob die Sonderbehandlung von || und && in C (und die Ausnahme von dieser Sonderbehandlung in C++, wenn diese Operatoren vom benutzer überladen worden sind) noch dazu geschrieben werden sollte. --RokerHRO 00:16, 8. Mär. 2011 (CET)Beantworten
Danke, RokerHRO! Ich habe noch die fehlende ) ergänzt und in Damit ergibt die Auswertung des Ausdrucks stets denselben Wert hinzugefügt, dass das nur gilt, falls es keine Seiteneffekte gibt. -- || und && würde ich 'rauslassen, ? : auch. -- UKoch 18:02, 9. Mär. 2011 (CET)Beantworten

Rechtsassoziativität der Potenzierung Bearbeiten

"Von den genannten arithmetischen Operatoren ist die Potenzierung rechtsassoziativ, d. h.:

 ."

Für mathematische Formeln gilt das, aber auch für Programmiersprachen? Zumindest wenn man in MATLAB den Ausdruck "2^3^2" eingibt und anschließend die Eingabetaste betätigt, erhält man 64 als Ergebnis. Nach der Rechtsassoziativität der Potenzierung müsste aber 512 dabei herauskommen. Dasselbe gilt für das Microsoft-Tabellenkalkulationsprogramm "Excel". Das Windows-Zubehör-Taschenrechnerprogramm hält sich im Standardmodus nicht an irgendwelche Operatorprioritäten, im wissenschaftlichen Modus doch. Wenn also auch schon bei der Vorzeichenpriorität ein Compiler eine Formel eingegebene anders liest, als sie als mathematische Formel gelesen werden müsste, könnte das bei der Assoziativität der Potenzierung ähnlich sein?--Slow Phil 14:18, 18. Mär. 2008 (CET)Beantworten

Was soll eigentlich "Rechtsassoziativität" sein? Assoziativität ist eine Eigenschaft der Verknüpfung. Hier geht es aber um die Notation. Gemeint ist, dass Potenzierung von rechts nach links ausgewertet wird. Dies als "Rechtsassoziativität" zu bezeichnen halte ich für irreführend.--Digamma 15:07, 18. Mär. 2008 (CET)Beantworten

Steht aber so im Artikel. Gemeint ist, dass "2^3^2" als 2^(3^2)=512 und nicht als (2^3)^2=64 aufzufassen sei, wenn es in einer mathematischen Formel steht. MS Excel, aber auch MATLAB werten hingegen diesen Ausdruck so aus wie (2^3)^2=64. Wie sieht das in anderen Programmiersprachen aus?--Slow Phil 15:46, 18. Mär. 2008 (CET)Beantworten

Sowohl der **-Operator in Python als auch der ^-Operator im POSIX-bc (Basic Calculator) sind rechtsassoziativ. -- memset 17:42, 27. Mär. 2008 (CET)Beantworten
"Rechtsassoziativ" (auf deutsch: "von rechts zusammenfassend") bei infix-Operatoren heißt, dass a • b • c wie a • (b • c) ausgewertet wird. Ein linksassoziativer Operator dagegen würde den Ausdruck wie (a • b) • c auswerten. Die meisten arithmetischen Operatoren sind sowohl in der Mathematik als auch in den üblichen Programmiersprachen linksassoziativ. Da die Potenzierung in der Mathematik aber rechtsassoziativ ist, folgen manche Programmiersprachen dieser Konvention. Andere Programmiersprachen sind eher auf Einfachheit im Parser designt, dort sind dann alle Operatoren linksassoziativ. Die beiden alten Sprachen Fortran und Algol, von denen viele heutige Programmiersprachen mehr oder weniger "abstammen" unterschieden sich da zum Beispiel, wobei ich jetzt nicht weiß, welche Sprache diesen Operator auf welche Weise geklammert hat. :-/ --RokerHRO 01:02, 28. Jul. 2008 (CEST)Beantworten

Assoziativität von Multiplikation / Division Bearbeiten

Eine Frage: Wie würde Folgendes ausgewertet werden: "a*b*c/d"? Habe ich den Artikel dahingehend richtig verstanden, dass es gemeinhin als (a*b*c)/d definiert ist? Vielleicht könnte das noch als Beispiel in den Artikel aufgenommen werden, da es ein häufiger vorkommender Fall ist. 92.116.166.168 18:09, 27. Jul. 2008 (CEST)Beantworten

Ich wüsste nicht, wieso. Bei Programmiersprachen wie C, C++ oder Java ist es so definiert, wie du es beschreibst. In der Mathematik tritt das Problem seltener auf, da Divisionen dort üblicherweise mit einem Bruchstrich geschrieben werden, der "implizit" klammert:  . Problematisch sind dann nur gestapelte Brüche wie   im Vergleich etwa zu  , wo die "Klammerung" an der vertikalen Ausrichtung der Formel, der Größe des Bruchstriches und ggf. der Größe der Zeichen zu erkennen sein sollte  --RokerHRO 00:49, 28. Jul. 2008 (CEST)Beantworten
Bei diesem Beispiel, wo die Division ganz am Schluss auftritt, ist es völlig egal, wie da geklammert wird. (a*b*c)/d ist dasselbe wie a*b*(c/d) usw. --Digamma (Diskussion) 16:46, 6. Mär. 2018 (CET)Beantworten

Rangfolge alle Operatoren/ Zeichen Bearbeiten

Es ist in der Mathematik doch strikt festgelegt, welche Rechenzeichen/ Operatoren in welcher Reihenfolge/ Rangfolge ausgewertet werden. Gibt es dazu eine Seite in Wikipedia? Ich fände das sehr nützlich, da ich ab und zu durcheinander komme und dann gern schnell nachschlagen könnte. Hier ist doch ein guter Platz dafür oder? Und es könnte auch gesagt werden, dass es allgemein gilt, dass es egal ist, wie man Operatoren auswertet, wenn sie keine Rangfolge haben. Somit hätte man glaube ich alles abgedeckt, fände ich super. Ich will deswegen fragen, ob es da Einwände gibt. -- Lexischemen 18:27, 19. Mär. 2010 (CET)Beantworten

Konvention oder Norm? Bearbeiten

Mich lässt im Augenblick die Frage nicht mehr los, ob es sich bei der Operatorrangfolge letztendlich "nur" um eine Konvention handelt oder ob es eine normative Autorität gibt, die solche Regelungen verwaltet, Empfehlungen ausspricht o.ä.? Das schließt natürlich andere Regelungen der "Sprache" Mathematik mit ein. -- 2003:D1:2BC0:D100:5D3B:5ED1:9D9D:69CC 15:29, 12. Sep. 2016 (CEST)Beantworten

Nein, so eine Autorität gibt es nicht. Wird auch nicht benötigt, da sich Mathematiker ja nicht nach Autoritäten richten, sondern sich ihre Formelsprache so zurechtlegen, wie es zweckmäßig und praktisch ist. Und bei "Punktrechnung vor Strichrechnung" usw. ist die im Artikel genannte Rangfolge halt für alle Mathematiker am praktischsten. Es gibt Bereiche, wo mal diese, mal jene Definition zweckmäßiger ist und es somit keinen Konsens unter den Mathematikern gibt (z.b. "Ist 0 eine natürliche Zahl?"). In jenen Fällen starten mathematische Abhandlungen oft mit einer Reihe von Festlegungen, die dann in diesem Buch/Kapitel/Beweis/Paper gelten sollen, oder aber man verwendet Notationen, die in jedem Falle eindeutig sind. Also: nur geklammerte Terme bei Boolescher Algebra, oder Formulierungen wie "natürliche Zahlen ohne Null" oder "Natürliche Zahlen und Null" usw. --RokerHRO (Diskussion) 11:11, 13. Sep. 2016 (CEST)Beantworten

linksassoziativität von Multiplikation und Division Bearbeiten

Zum Verständnis: 6 : 2b ist für b = 3 demnach 9 und nicht 1, da folgende Auflösung gülte: (6 : 2)b? Ok, wieder etwas gelernt --GlaMax (Diskussion) 14:54, 6. Mär. 2018 (CET)Beantworten

Worauf bezieht sich "demnach"? --Digamma (Diskussion) 16:49, 6. Mär. 2018 (CET)Beantworten
Unabhängig vom Bezug für „demnach“: Ja, für b=3 ist der Term gleich 9. „2b“ ist dasselbe wie „2·b“, die Juxtaposition bewirkt keine Klammerung. --Kreuzschnabel 08:55, 13. Aug. 2019 (CEST)Beantworten
Zweifel an der Linksassoziativität der Division/Multiplikation kamen mir in der Tat nach der Lektüre einiger Physikbücher und Paper. Tatsächlich sind Ausdrücke wie exp(-x/4L) gar nicht so extrem selten und in all diesen Fällen sind diese Ausdrücke rechtsassoziativ gemeint. Auch wenn die Potenzierung selbst rechtsassoziativ ist, bedeutet das ja eigentlich nicht, dass sich die Rechtsassoziativität auf das Argument überträgt, sondern heißt lediglich, dass das Argument zuerst ausgewertet wird. In der tat ist das ein Problem, auf das man in der Praxis sehr häufig stößt und sollte deshalb auch in diesem Artikel behandelt werden, weil es eine wichtige Ausnahme darstellt. -- 141.30.3.110 11:38, 24. Okt 2019 (CEST)
aus der englischen Wikipedia: Similarly, there can be ambiguity in the use of the slash symbol / in expressions such as 1/2x.[1] If one rewrites this expression as 1 ÷ 2x and then interprets the division symbol as indicating multiplication by the reciprocal, this becomes:
 
With this interpretation 1 ÷ 2x is equal to (1 ÷ 2)x.[2][3] However, in some of the academic literature, multiplication denoted by juxtaposition (also known as implied multiplication) is interpreted as having higher precedence than division, so that 1 ÷ 2x equals 1 ÷ (2x), not (1 ÷ 2)x.
For example, the manuscript submission instructions for the Physical Review journals state that multiplication is of higher precedence than division with a slash,[4] and this is also the convention observed in prominent physics textbooks such as the Course of Theoretical Physics by Landau and Lifshitz and the Feynman Lectures on Physics.[lower-alpha 1]
  1. John A. Ball: Algorithms for RPN calculators. 1. Auflage. Wiley-Interscience, John Wiley & Sons, Inc., Cambridge, Massachusetts, USA 1978, ISBN 0-471-03070-8, S. 31.
  2. Referenzfehler: Ungültiges <ref>-Tag; kein Text angegeben für Einzelnachweis mit dem Namen Bronstein_1987.
  3. Rules of arithmetic. (PDF) In: Mathcentre.ac.uk. Abgerufen am 2. August 2019.
  4. Physical Review Style and Notation Guide. American Physical Society, abgerufen am 5. August 2012 (Section IV–E–2–e).
  1. For example, the third edition of Mechanics by Landau and Lifshitz contains expressions such as hPz/2Vorlage:Pi (p. 22), and the first volume of the Feynman Lectures contains expressions such as 1/2Vorlage:Sqrt (p. 6–7). In both books these expressions are written with the convention that the solidus is evaluated last.

--141.65.5.54 14:07, 24. Okt. 2019 (CEST)Beantworten

Ich denke, das Problem kommt daher, dass hier der Schrägstrich einen Bruchstrich ersetzen soll, der z.B. an der Tafel als waagrechter Bruchstrich oder zumindest als Schrägstrich geschrieben wird, so dass klar ist, was Teil des Nenners des Bruchs ist, und was hinter dem Bruch steht. Bei der Schreibweise mit : oder ÷ ist das aber kein Bruch, deshalb ist die Operatorrangfolge von links nach rechts. --Digamma (Diskussion) 17:17, 24. Okt. 2019 (CEST)Beantworten
PS: Da die Vorlage "sfrac" in der de.wikipedia nicht funktioniert, habe ich die Zeile mal in TeX umgeschrieben. --Digamma (Diskussion) 17:17, 24. Okt. 2019 (CEST)Beantworten

Auswertungsreihenfolge, Syntax und Semantik Bearbeiten

Man sollte mal von den Erklärungen über "Auswertungsreihenfolgen" wegkommen. Wenn ich den Term   auswerten will, rechne ich doch nicht zuerst   aus. In dem C-Ausdruck X || Y && Z darf Y && Z überhaupt nicht zuerst ausgewertet werden, sondern, es wird zuerst X ausgewertet, und je nach Ergebnis dessen, Y && Z erst hinterher oder eben überhaupt nicht. Auch wenn man den Ausdruck (völlig äquivalent!) als X || (Y && Z) schreibt, wird nicht zuerst Y && Z ausgewertet.

Vielmehr geht es um eine Äquivalenz von (in linearer Syntax geschriebenen) Termen:   ist (bei üblicher Rangfolge) einfach eine klammersparende Variante von  , aber nicht von  . Die ersten beiden haben denselben Syntaxbaum. Wenn man nicht über Syntaxbäume oder Parsen sprechen will, obwohl es bei einer Festlegung von Operatorrangfolgen ja genau darum geht, kann man sich sicherlich auch recht direkt mit einem "steht für" behelfen: "  hat eine höhere Priorität als  , deshalb steht   für  ." etc.

Desweiteren, und das wird auch hier auf der Diskussionsseite deutlich, scheinen viele zu denken (und der Artikel tut gegenwärtig eigentlich nichts gegen dieses Missverständnis), dass verschiedene Operatoren, die für dieselbe Operation stehen, syntaktisch bzgl. Rangfolge und Links-/Rechtsassoziativität dieselben Eigenschaften haben müssen. Dabei spricht ja gar nichts dagegen, z.B. der Multiplikation dargestellt durch Juxtaposition eine höhere Priorität zu geben als Muliplikation dargestellt mit   und Division mit  , und Division mit   eine niedrigere Priorität als  , und dann Juxtaposition,   in derselben Sprache koexistieren zu lassen. Am Ende ist es eine Frage des Sprachdesigns. --Daniel5Ko (Diskussion) 23:20, 10. Jun. 2023 (CEST)Beantworten