Punktrechnung vor Strichrechnung

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
lackschuh
User
Beiträge: 283
Registriert: Dienstag 8. Mai 2012, 13:40

ggf. kann mir ein Mathe-Profi helfen :D

Hatte gerade eine Diskussion über die Punktrechnung vor Strichrechnung der "Python Console" und Windows Taschenrechner.

Folgende zwei Beispiele:

20/4*5

oder

6/3*2

Ist es jetzt richtig (war meine Annahme) von links nach rechts. Also 20/4*5=25 oder 20/(4*5)=1
Die Python Console wie auch der Win Rechner sagen 25. Mein Kontrahent sagt 1.

Wer von uns hat nun recht? Wohl mein Kollege oder?

Gruss und Dank
Sirius3
User
Beiträge: 18422
Registriert: Sonntag 21. Oktober 2012, 17:20

Mit Strich ist + und − gemeint und nicht geteilt durch, dad ja im deutschsprachigen Raum als : geschrieben wird. Und dann wird von links nach rechts gerechnet. (20:4)∙5
Beim Bruchstrich kann man dagegen denken, dass ²⁰∕₄.₅ gemeint wäre, das muß aber graphisch deutlich gemacht werden, wie weit der Bruchstrich reicht.
Benutzeravatar
Kebap
User
Beiträge: 809
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Division und Multiplikation sind gleichwertig, dann wird von links nach rechts gerechnet. Welches Gegenargument bringt dein Kontrahent?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
lackschuh
User
Beiträge: 283
Registriert: Dienstag 8. Mai 2012, 13:40

Sirius3 hat recht. Hatte völlig vergessen zu erwähnen, dass es u.a. um "modernere" Taschenrechner geht, die Brüche "rechnen" können. So ein TI 30 spuckt mit der Eingabe über a b/c "25 " aus und nicht 1, was gemäss meinem Kollegen richtig wäre.
Benutzeravatar
sparrow
User
Beiträge: 4660
Registriert: Freitag 17. April 2009, 10:28

@lackschuh: Verstehe ich nicht. Welcher "unmoderne" Taschenrechner gibt da denn 1 aus?!?
Benutzeravatar
__blackjack__
User
Beiträge: 14428
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@lackschuh: Wenn das für den Kollegen ein Fall von „Punkt vor Strichrechnung“ ist, dann hat der wohl komische Ansichten von Mathematik. 🙄

Wenn das als 20/4*5 geschrieben ist, dann wäre das sehr ungewöhnlich wenn die Multiplikation zuerst gerechnet werden würde. Das müsste man dann schon mit Klammern schreiben, also 20/(4*5), oder eben zweidimensional klar machen, was gemeint ist:

Code: Alles auswählen

 20
───── = 1
4 ⋅ 5
Mein C64 gibt bei PRINT 20/4*5 auch 25 aus, also wie unmodern müssen wir werden? 😀
“Design patterns are kind of like sarcasm: hard to use well, not always appropriate,
and disgustingly bad when applied to problems they are not meant to solve.” — ajones in c.l.python
Benutzeravatar
DeaD_EyE
User
Beiträge: 1363
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Diese Prioritäten gelten:
  • Klammern werden von innen nach außen berechnet.
  • Potenzen kommen vor Multiplikation und Division.
  • Multiplikation und Division haben die gleiche Priorität und werden von links nach rechts ausgeführt.
  • Addition und Subtraktion haben ebenfalls die gleiche Priorität und werden von links nach rechts ausgeführt.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
__blackjack__
User
Beiträge: 14428
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ergänzend, wo Du Potenzen ins Spiel bringst, die werden von rechts nach links ausgewertet:

Code: Alles auswählen

>>> 2**3**4
2417851639229258349412352
Das Unterscheidet sich dann beim C64:

Code: Alles auswählen

PRINT 2↑3↑4
 4096

READY.
“Design patterns are kind of like sarcasm: hard to use well, not always appropriate,
and disgustingly bad when applied to problems they are not meant to solve.” — ajones in c.l.python
Benutzeravatar
DeaD_EyE
User
Beiträge: 1363
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

__blackjack__ hat geschrieben: Mittwoch 22. Juli 2026, 13:34 Ergänzend, wo Du Potenzen ins Spiel bringst, die werden von rechts nach links ausgewertet:
Mathematisch gesehen ist das sogar richtig. Da wird auch von rechts nach links potenziert. Da Guido Mathematiker ist, kann man von ausgehen, dass die Reihenfolge der Operatoren mathematisch korrekt sind.

https://docs.python.org/3/reference/exp ... precedence
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten