Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Remco Gerlich
Hoi, Ik heb er gisteren ook mee gespeeld, en de truc is: decimal.getcontext().prec = 1000 Je kunt de precisie zelf instellen! Standaard is het 28 cijfers. from decimal import * getcontext().prec = 1000 a = Decimal('1e22') c = Decimal('1e22')+Decimal('1') b = (c*c-a*a).sqrt() Geeft het juiste

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Stef Mientki
Leuk. Kun je vertellen waar je integers vandaan komen [..] Ik werk een eigen compressie idee uit. Tot nu toe wordt mijn bestand alleen maar groter :-) Nou dat is niet helemaal waar, maar ik probeer met grotere brokken data te werken en nu loop ik tegen grenzen aan. Misschien ken je dit

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Robert-Reinder Nederhoed
No luck so far... >>> from decimal import Decimal >>> a = Decimal(10) ** Decimal(80) >>> b = a + Decimal(1) >>> b Decimal('1.000E+80') >>> 10 ** 80 1 bij Decimal gaat het 1 eentje al verloren v

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Rob Hooft
Op 4 mei 2009 20:35 heeft Robert-Reinder Nederhoed het volgende geschreven: > Voor de komma, achter de komma is oninteressant voor mijn functie. Ik > begin met hele grote integers, voer daar bewerkingen op uit en wil dan > terugrekenen. Leuk. Kun je vertellen waar je integers vandaan komen, en w

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Robert-Reinder Nederhoed
Heren, bedankt voor het meedenken. numpy.float128 kende ik nog niet, thanks! Wellicht doe ik rare dingen... maar ik wil juist rekenen met getallen van 1000 cijfers (of meer) :-) en de waarde zit 'm juist in de afwijking tussen 2 hele grote getallen. Die 1 in het voorbeeld is juist heel belangrijk.

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Evert Rol
Mijn probleem in de kern is dit: a = 1 + 10**22 a 101L a**2 10201L (a**2)**0.5 1e+22 Je kunt je ook afvragen of je de precisie werkelijk nodig hebt. In alle praktische gevallen kun je volgens mij gewoon aannemen: >>> a = 1e22+1

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Evert Rol
Overigens heeft numpy nog een float128 type, maar ook daar zul je vinden dat a = numpy.float128(1e22+1) b = numpy.float128(1e22) a == b True Niet valsspelen, je moet de optelling natuurlijk wel in float128 doen en niet in Python float (64). Oeps, even over het hoofd gezien. En ik denk dat

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Rob Hooft
> Overigens heeft numpy nog een float128 type, maar ook daar zul je vinden dat a = numpy.float128(1e22+1) b = numpy.float128(1e22) a == b > True Niet valsspelen, je moet de optelling natuurlijk wel in float128 doen en niet in Python float (64). 64 bit floats met 53 bit mantissa zijn

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Martijn Faassen
Hoi, 2009/5/4 Rob Hooft : > Nee, de beste optie is om het niet met informatica maar met wiskundige > algebra op te lossen. Het algoritme zo kiezen dat je een grotere > nauwkeurigheid intrinsiek behoudt. De vraag ging expliciet over een float-alternatief. Van decimal en fractions lijkt me fraction

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Robert-Reinder Nederhoed
@Martijn: dank, ik ga vanavond de Fraction uitproberen @Rob: dank voor je reactie. Ik begrijp je punt. Het is alleen lastig om dit probleem met een ander algoritme op te lossen. Mijn probleem in de kern is dit: >>> a = 1 + 10**22 >>> a 101L >>> a**2 1020

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Rob Hooft
Nee, de beste optie is om het niet met informatica maar met wiskundige algebra op te lossen. Het algoritme zo kiezen dat je een grotere nauwkeurigheid intrinsiek behoudt. In plaats van c**2-b**2 moet je dan bijvoorbeeld (c-b)*(c+b) berekenen; ontzettend veel makkelijker. Rob Op 4 mei 2009 13:38

Re: [python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Martijn Faassen
Hoi, 2009/5/4 Robert-Reinder Nederhoed : > Is er een float-alternatief die een zekere precisie behoudt? http://docs.python.org/library/fractions.html http://docs.python.org/library/decimal.html Het lijkt me dat fractions het beste bij een wiskundig probleem als deze passen. Groeten, Martijn _

[python-nl] grote getallen met grote precisie

2009-05-04 Berichten over hetzelfde onderwerp Robert-Reinder Nederhoed
Goedemiddag! Ik wil de korte zijde van een hele lange, smalle rechthoekige driehoek berekenen, daarbij gebruik ik Pythagoras met grote getallen: c = (a**2 + b**2) ** 0.5 Waarbij: c == 1 + 10**22 (schuine zijde) a == 10**22 (rechte zijde) Het antwoord zou moeten volgen uit: b = (c**2 - b**2) ** 0