Seite 1 von 1
Problem mit Exponenten
Verfasst: Sonntag 25. Oktober 2009, 22:10
von LP640
hallo hab ne kurze frage:
wieso kommt bei den beiden folgenden sachen net das selbe raus?
Code: Alles auswählen
>>> 5**5**5
1911012597945477520356404559703964..........................(gekürzt)
>>> (5**5)**5
298023223876953125L
und wenn ja, wie kann man das machen, dass automatisch bei 5**5**5 das selbe wie bei (5**5)**5 rauskommt?
mfg
LP640
Edit (Leonidas): Zeilenumbrüche eingefügt.
Re: Problem mit Exponenten
Verfasst: Sonntag 25. Oktober 2009, 22:19
von Leonidas
LP640 hat geschrieben:wieso kommt bei den beiden folgenden sachen net das selbe raus?
Weil ``5**5**5`` das gleiche wie ``5**(5**5)`` ist und eben nicht das gleiche wie ``(5**5)**5``.
LP640 hat geschrieben:und wenn ja, wie kann man das machen, dass automatisch bei 5**5**5 das selbe wie bei (5**5)**5 rauskommt?
Klammern setzen.
Verfasst: Sonntag 25. Oktober 2009, 22:21
von ms4py
Weil der Parser das anders parst:
Code: Alles auswählen
In [1]: import ast
In [2]: exp = ast.parse('5**5**5')
In [3]: ast.dump(exp)
Out[3]: 'Module(body=[Expr(value=BinOp(left=Num(n=5), op=Pow(), right=BinOp(left
=Num(n=5), op=Pow(), right=Num(n=5))))])'
In [4]: exp = ast.parse('(5**5)**5')
In [5]: ast.dump(exp)
Out[5]: 'Module(body=[Expr(value=BinOp(left=BinOp(left=Num(n=5), op=Pow(), right
=Num(n=5)), op=Pow(), right=Num(n=5)))])'
Und falls du den nicht unbedingt umschreiben willst, sehe ich keine andere Möglichkeit um das zu ändern.
(Ich gehe mal davon aus, dass dir klar ist, warum da mathematisch gesehen zwei verschiedene Zahlen heraus kommen

)
Edit: Bitte kürze mal die lange Zahl, das verunstaltet ja völlig das Forum...

Edit2: Danke Leonidas

Verfasst: Sonntag 25. Oktober 2009, 22:23
von numerix
Und weil es mathematisch so korrekt ist ...

Verfasst: Montag 26. Oktober 2009, 06:26
von LP640
hallo
dass 5**5**5 = 5**(5**5) ist und nicht (5**5)**5, darauf bin ich später auch noch gekommen.
ich hab mich nur gewundert, da mein taschenrechner bei 5^5^5 genau umgekehrt rechent, also (5^5)^5.
mfg
LP640
Verfasst: Montag 26. Oktober 2009, 07:25
von mkesper
LP640 hat geschrieben:ich hab mich nur gewundert, da mein taschenrechner bei 5^5^5 genau umgekehrt rechent, also (5^5)^5.
Wenn es kein programmierbarer Taschenrechner ist, dann kannst du das ja nur nacheinander eingeben:
Verfasst: Montag 26. Oktober 2009, 09:25
von numerix
LP640 hat geschrieben:ich hab mich nur gewundert, da mein taschenrechner bei 5^5^5 genau umgekehrt rechent, also (5^5)^5.
In der Tat gibt es Modelle (z.B. Ti-30 XII), die das so machen - ist aber mathematisch nicht korrekt. Es gibt andere Modelle (z.B. Casio FX-82/85/350-ES), die es richtig machen.
mkallas hat geschrieben:Wenn es kein programmierbarer Taschenrechner ist, dann kannst du das ja nur nacheinander eingeben:
Auf welchem Taschenrechner-Stand bist du denn? Natürlich kann man das direkt eingeben.