Fehler des Interpreters 3.13 bei Potenzierung

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
ReFiWi69
User
Beiträge: 1
Registriert: Dienstag 25. Februar 2025, 11:31

Verschiedene Ergebnisse:

x = -5.2**-3.8
print("1. -5.2 hoch -3.8 =", x)
x = (-5.2)**-3.8
print("2. (-5.2) hoch -3.8 =", x)
x = -5.2**-(3.8)
print("3. -5.2 hoch (-3.8) =", x)
print()

Ausgabe:
1. -5.2 hoch -3.8 = -0.0019018983172844654
2. (-5.2) hoch -3.8 = (0.0015386680602562477+0.0011179077822596802j)
3. -5.2 hoch (-3.8) = -0.0019018983172844654

Auf keinen Fall kann das Ergebnis eine komplexe Zahl wie unter 2. sein. Vorzeichen bindet am stärksten, Klammern sollten hier
keine Auswirkungen haben. Woran liegt es?
Sirius3
User
Beiträge: 18216
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Reihenfolge der Operatoren ist hier definiert: https://docs.python.org/3/reference/exp ... precedence
Da das eine Definition ist, gibt es hier kein richtig oder falsch.
Potenzen von negativen Zahlen können komplex sein, prominentestes Beispiel (-1)**0.5
Benutzeravatar
DeaD_EyE
User
Beiträge: 1205
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

ChatGPT sagt:

Imaginäre Zahlen notwendig?

Imaginäre Zahlen werden erst dann benötigt, wenn Brüche als Exponenten auftreten, die zu Wurzeln aus negativen Zahlen führen.
Zum Beispiel ist:

Code: Alles auswählen

(−2)**(1/2)

Ohne komplexe Zahlen nicht definiert, da es der Wurzel aus einer negativen Zahl entspricht.
Aber für ganze negative Exponenten braucht man keine komplexen Zahlen.

Mein Senf:
Das, was Python macht, ist schon richtig. Um eine komplexe Zahl (real + imaginär) in eine reale Zahl umzuwandeln, kann man die Funktion abs() nutzen. Dabei kommt immer ein positiver Wert heraus.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
DMD-OL
User
Beiträge: 327
Registriert: Samstag 26. Dezember 2015, 16:21

Laut ChatGPT:
Warum gibt es bei x2 eine komplexe Zahl?
Wie gesagt, wenn du mit einer negativen Basis und einem nicht-ganzzahligen Exponenten arbeitest, wie im Fall von (-5.2)**-3.8, führt das zu einem komplexen Ergebnis, weil die Berechnung der Potenz von negativen Zahlen mit nicht-ganzzahligen Exponenten mathematisch zu einer komplexen Zahl führen kann. Das ist der Grund, warum du bei x2 eine komplexe Zahl bekommst.
Ist das so?
Benutzeravatar
DeaD_EyE
User
Beiträge: 1205
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Was ist denn die Quadratwurzel von -16?
Ohne imaginäre Zahlen gibt es kein Ergebnis:

Code: Alles auswählen

-4 * -4 == 16
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten