Sind meine Zahlen zu groß?

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
Tyrax
User
Beiträge: 73
Registriert: Mittwoch 4. Februar 2009, 18:31

Hallo Gemeinde,

ich arbeite gerade an den Daten, die ich aus einer Simulation bekomme, die ich mit Python (Enthought 5.0, i.e. Python 2.5.4) geschrieben habe. An einer Stelle taucht ein Effekt auf, denn ich nicht nachvollziehen kann - ich vermute aber, dass die von mir verwendeten integers zu groß sind (etwa 10^10).

Meine Frage ist nun, inwieweit meine Vermutung zutreffen und wie ich das Problem ggf. lösen könnte. Mein Python-Buch weiß darüber nichts zu berichten, außer dass ab etwa 2*10^9 automatisch auf Long-integer geschaltet wird. Doch wie groß dürfen Long-integers werden?

Danke und Grüße, Tyrax
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Tyrax hat geschrieben:Meine Frage ist nun, inwieweit meine Vermutung zutreffen und wie ich das Problem ggf. lösen könnte. Mein Python-Buch weiß darüber nichts zu berichten, außer dass ab etwa 2*10^9 automatisch auf Long-integer geschaltet wird. Doch wie groß dürfen Long-integers werden?
Beliebig groß - bis der Rechner schlapp macht.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Code: Alles auswählen

>>> sys.maxint
2147483647
oder für Python 3:

Code: Alles auswählen

>>> sys.maxsize
2147483647
the more they change the more they stay the same
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

10-hoch-10 (also 10000000000L) kann problemlos dargestellt werden. Der Wert von "sys.maxint" spielt hierbei keine Rolle, denn es ist, wie numerix schon sagte: Die Zahlen können so groß sein, wie sie in den Hauptspeicher passen.

Code: Alles auswählen

10**10000+1
Stefan
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

dann probier doch mal

Code: Alles auswählen

sys.maxint + 1
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Redprince
User
Beiträge: 128
Registriert: Freitag 22. Oktober 2004, 09:22
Wohnort: Salzgitter
Kontaktdaten:

Code: Alles auswählen

>>> sys.maxint + 1
2147483648L
Und nu? :s
I am not part of the allesburner. I am the [url=http://allesburner.de]allesburner[/url].
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Vielleicht meinte jbs das hier:

Code: Alles auswählen

>>> type(sys.maxint), type(sys.maxint+1)
(<type 'int'>, <type 'long'>)
Aber was er uns damit sagen will, ist mir schleierhaft.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Es lässt sich so ganz gut beschreiben :oops:
sma hat geschrieben:10-hoch-10 (also 10000000000L) kann problemlos dargestellt werden. Der Wert von "sys.maxint" spielt hierbei keine Rolle, denn es ist, wie numerix schon sagte: Die Zahlen können so groß sein, wie sie in den Hauptspeicher passen.

Code: Alles auswählen

10**10000+1
Stefan
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Tyrax
User
Beiträge: 73
Registriert: Mittwoch 4. Februar 2009, 18:31

Danke, dann muss ich einen besseren Grund für die seltsamen Daten finden.

Grüße, Tyrax
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

U. U. hilft ein bißchen Code - vielleicht können wir helfen? (Falls Du Dich dazu entschließt: Eine gute Problembeschreibung nicht vergessen.)
Antworten