python实现高精度求自然常数e过程详解

Lala ·
更新时间:2024-11-14
· 585 次阅读

目录

泰勒展开与e的求法

python和神奇的decimal

计算

比较

完整代码

泰勒展开与e的求法

大家伙儿知道计算机里的 e是怎么求出来的吗?

这还要从神奇的泰勒展开讲起……

简单的说,就是 e,可以表示成:

很显然,当 n足够小的时候,精度已经很高了,后面的级数是收敛的,可以忽略不计。而这显然可以用计算机来计算。

python和神奇的decimal

很多人习惯用python算高精度整数,因为python的整数是高精度的,但是浮点数却只有32位,这里python提供了一个神奇的库“decimal”,这个库可以让你指定小数的精度,相当于“高精度小数”。

计算 import decimal Precision=20000 decimal.getcontext().prec=Precision

我们可以像这样给它设置一个精度。

然后紧接着代入我们的展开式,一般来说算到精度位就差不多了。

E=decimal.Decimal(0) nFrac=decimal.Decimal(1) for N in range(1,Precision+1): E+=nFrac nFrac/=N print(E)

最后实现的效果就是

一整页的数字,毕竟20000位呢。

比较

我们用专业软件"mathematica"计算 e的20000位,并存成字符串传入decimal,这里要注意必须用字符串而不是直接写小数,因为默认小数只有32bit会丢失剩余精度。


这里我们让mathematica的 e和我们的 e作差,误差只有1.7e-19998,相当于不到 2 ⋅ 1 0  ^-19998,所以只要稍微调高精度就能精确到20000位了。

完整代码 import decimal Precision=20000 decimal.getcontext().prec=Precision E=decimal.Decimal(0) nFrac=decimal.Decimal(1) for N in range(1,Precision+1): E+=nFrac nFrac/=N e=decimal.Decimal('2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729003342952605956307381323286279434907632338298807531952510190115738341879307021540891499348841675092447614606680822648001684774118537423454424371075390777449920695517027618386062613313845830007520449338265602976067371132007093287091274437470472306969772093101416928368190255151086574637721112523897844250569536967707854499699679468644549059879316368892300987931277361782154249992295763514822082698951936680331825288693984964651058209392398294887933203625094431173012381970684161403970198376793206832823764648042953118023287825098194558153017567173613320698112509961818815930416903515988885193458072738667385894228792284998920868058257492796104841984443634632449684875602336248270419786232090021609902353043699418491463140934317381436405462531520961836908887070167683964243781405927145635490613031072085103837505101157477041718986106873969655212671546889570350354021234078498193343210681701210056278802351930332247450158539047304199577770935036604169973297250886876966403555707162268447162560798826517871341951246652010305921236677194325278675398558944896970964097545918569563802363701621120477427228364896134225164450781824423529486363721417402388934412479635743702637552944483379980161254922785092577825620926226483262779333865664816277251640191059004916449982893150566047258027786318641551956532442586982946959308019152987211725563475463964479101459040905862984967912874068705048958586717479854667757573205681288459205413340539220001137863009455606881667400169842055804033637953764520304024322566135278369511778838638744396625322498506549958862342818997077332761717839280349465014345588970719425863987727547109629537415211151368350627526023264847287039207643100595841166120545297030236472549296669381151373227536450988890313602057248176585118063036442812314965507047510254465011727211555194866850800368532281831521960037356252794495158284188294787610852639813955990067376482922443752871846245780361929819713991475644882626039033814418232625150974827987779964373089970388867782271383605772978824125611907176639465070633045279546618550966661856647097113444740160704626215680717481877844371436988218559670959102596862002353718588748569652200050311734392073211390803293634479727355955277349071783793421637012050054513263835440001863239914907054797780566978533580489669062951194324730995876552368128590413832411607226029983305353708761389396391779574540161372236187893652605381558415871869255386061647798340254351284396129460352913325942794904337299085731580290958631382683291477116396337092400316894586360606458459251269946557248391865642097526850823075442545993769170419777800853627309417101634349076964237222943523661255725088147792231519747780605696725380171807763603462459278778465850656050780844211529697521890874019660906651803516501792504619501366585436632712549639908549144200014574760819302212066024330096412704894390397177195180699086998606636583232278709376502260149291011517177635944602023249300280401867723910288097866605651183260043688508817157238669842242201024950551881694803221002515426494639812873677658927688163598312477886520141174110913601164995076629077943646005851941998560162647907615321038727557126992518275687989302761761146162549356495903798045838182323368612016243736569846703785853305275833337939907521660692380533698879565137285593883499894707416181550125397064648171946708348197214488898790676503795903669672494992545279033729636162658976039498576741397359441023744329709355477982629614591442936451428617158587339746791897571211956187385783644758448423555581050025611492391518893099463428413936080383091662818811503715284967059741625628236092168075150177725387402564253470879089137291722828611515915683725241630772254406337875931059826760944203261924285317018781772960235413060672136046000389661093647095141417185777014180606443636815464440053316087783143174440811949422975599314011888683314832802706553833004693290115744147563139997221703804617092894579096271662260740718749975359212756084414737823303270330 1682371936480021732857349359475643341299430248502357322145978432826414216848787216733670106150942434569844018733128101079451272237378861260581656680537143961278887325273738903928905068653241380627960259303877276977837928684093253658807339884572187460210053114833513238500478271693762180049047955979592905916554705057775143081751126989851884087185640260353055837378324229241856256442550226721559802740126179719280471396006891638286652770097527670697770364392602243728418408832518487704726384403795301669054659374616193238403638931313643271376888410268112198912752230562567562547017250863497653672886059667527408686274079128565769963137897530346606166698042182677245605306607738996242183408598820718646826232150802882863597468396543588566855037731312965879758105012149162076567699506597153447634703208532156036748286083786568030730626576334697742956346437167093971930608769634953288468336130388294310408002968738691170666661468000151211434422560238744743252507693870777751932999421372772112588436087158348356269616619805725266122067975406210620806498829184543953015299820925030054982570433905535701686531205264956148572492573862069174036952135337325316663454665885972866594511364413703313936721185695539521084584072443238355860631068069649248512326326995146035960372972531983684233639046321367101161928217111502828016044880588023820319814930963695967358327420249882456849412738605664913525267060462344505492275811517093149218795927180019409688669868370373022004753143381810927080300172059355305207007060722339994639905713115870996357773590271962850611465148375262095653467132900259943976631145459026858989791158370934193704411551219201171648805669459381311838437656206278463104903462939500294583411648241149697583260118007316994373935069662957124102732391387417549230718624545432220395527352952402459038057445028922468862853365422138157221311632881120521464898051800920247193917105553901139433166815158288436876069611025051710073927623855533862725535388309606716446623709226468096712540618695021431762116681400975952814939072226011126811531083873176173232352636058381731510345957365382235349929358228368510078108846343499835184044517042701893819942434100905753762577675711180900881641833192019626234162881665213747173254777277834887743665188287521566857195063719365653903894493664217640031215278702223664636357555035655769488865495002708539236171055021311474137441061344455441921013361729962856948991933691847294785807291560885103967819594298331864807560836795514966364489655929481878517840387733262470519450504198477420141839477312028158868457072905440575106012852580565947030468363445926525521370080687520095934536073162261187281739280746230946853678231060979215993600199462379934342106878134973469592464697525062469586169091785739765951993929939955675427146549104568607020990126068187049841780791739240719459963230602547079017745275131868099822847308607665368668555164677029113368275631072233467261137054907953658345386371962358563126183871567741187385277229225947433737856955384562468010139057278710165129666367644518724656537304024436841408144887329578473484900030194778880204603246608428753518483649591950828883232065221281041904480472479492913422849519700226013104300624107179715027934332634079959605314460532304885289729176598760166678119379323724538572096075822771784833616135826128962261181294559274627671377944875867536575448614076119311259585126557597345730153336426307679854433857617153334623252705720053039882894990342595662329757824887350292591668258944568946559926584547626945287805165017206747854178879822768065366506419109734345288783386217261562695826544782056729877564263253215942944180399432170000905426507630955884658951717091476074371368933194690909819045012903070995662266203031826493657336984195557769637876249188528656866076005660256054457113372868402055744160308370523122425872234388541231794813885500756893811249353863186352870837998456926199817945233640874295911807474534195514203517261842008455091708456823682008977394558426792142734775608796442792027083121501564063413416171664480698154837644915739001212170415478725919989438253649505147713793991472052195290793961376 2110723849429061635760459623125350606853765142311534966568371511660422079639446662116325515772907097847315627827759878813649195125748332879377157145909106484164267830994972367442017586226940215940792448054125536043131799269673915754241929660731239376354213923061787675395871143610408940996608947141834069836299367536262154524729846421375289107988438130609555262272083751862983706678722443019579379378607210725427728907173285487437435578196651171661833088112912024520404868220007234403502544820283425418788465360259150644527165770004452109773558589762265548494162171498953238342160011406295071849042778925855274303522139683567901807640604213830730877446017084268827226117718084266433365178000217190344923426426629226145600433738386833555534345300426481847398921562708609565062934040526494324426144566592129122564889356965500915430642613425266847259491431423939884543248632746184284665598533231221046625989014171210344608427161661900125719587079321756969854401339762209674945418540711844643394699016269835160784892451405894094639526780735457970030705116368251948770118976400282764841416058720618418529718915401968825328930914966534575357142731848201638464483249903788606900807270932767312758196656394114896171683298045513972950668760474091542042842999354102582911350224169076943166857424252250902693903481485645130306992519959043638402842926741257342244776558417788617173726546208549829449894678735092958165263207225899236876845701782303809656788311228930580914057261086588484587310165815116753332767488701482916741970151255978257270740643180860142814902414678047232759768426963393577354293018673943971638861176420900406866339885684168100387238921448317607011668450388721236436704331409115573328018297798873659091665961240202177855885487617616198937079438005666336488436508914480557103976521469602766258359905198704230017946553678856743028597460014378548323706870119007849940493091891918164932725977403007487968148488234293202301212803232746039221968752834051690697419425761467397811071546418627336909158497318501118396048253351874843892317729261354302493256289637136197728545662292446164449728459786771157412567030787188510933634448014967524061853656953207417053348678275482781541556196691105510147279904038689722046555083317078239480878599050194756310898412414467282186545997159663901564194175182093593261631688838013275875260146050767609839262572641112013528859131784829947568247256488553335727977220554356812630253574821658541400080531482069713726214975557605189048162237679041492674260007104592269531483518813746388710427354476762357793399397063239660496914530327388787455790593493777232014295480334500069525698093528288778371067058556774948137385863038576282304069400566534058488752700530883245918218349431804983419963998145877343586311594057044368351528538360944295596436067609022174189688354813164399743776415836524223464261959739045545068069523285075186871944906476779188672030641863075105351214985105120731384664871754751838297999018931775155063998101646641459210240683829460320853555405814715927322067756766921366408150590080695254061062853640829327662193193993386162383606911176778544823612932685819996523927548842743541440288453645559512473554613940315495209739705189624015797683263945063323045219264504965173546677569929571898969047090273028854494541669979199294803825498028594602905276314558031651406622917122342937580614399348491436210799357673731794896425248881372043557928751138585697338197608352442324046677802094839963994668483377470672548361884827300064831916382602211055522124673332318446300550448184991699662208774614021615702102960331858872733329877935257018239386124402686833955587060775816995439846956854067117444493247951957215941964586373612691552645757478698596424217659289686238350637043393981167139754473622862550680368266413554144804899772137317411919997001729390730335086902092251912444739327837615632181084289820770697413870705326611768369864774178718020272941298231088879683188085436732780687977165911165422445380662586171172949803824887998650406156397562993696280935818976149101714534355665954275706419440883381684111116620075978724413708233391788611470822865753 1078536674695018462140736493917366254937783014074302668422150335117736471853872324040421037907750266020114814935482228916663640782450166815341213505278578539332606110249802273093636740213515386431693015267460536064351732154701091440650878823636764236831187390937464232609021646365627553976834019482932795750624399645272578624400375983422050808935129023122475970644105678361870877172333555465482598906861201410107222465904008553798235253885171623518256518482203125214950700378300411216212126052726059944320443056274522916128891766814160639131235975350390320077529587392412476451850809163911459296071156344204347133544720981178461451077872399140606290228276664309264900592249810291068759434533858330391178747575977065953570979640012224092199031158229259667913153991561438070129260780197022589662923368154312499412259460023399472228171056603931877226800493833148980338548909468685130789292064242819174795866199944411196208730498064385006852620258432842085582338566936649849720817046135376163584015342840674118587581546514598270228676671855309311923340191286170613364873183197560812569460089402953094429119590295968563923037689976327462283900735457144596414108229285922239332836210192822937243590283003884445701383771632056518351970100115722010956997890484964453434612129224964732356126321951155701565824427661599326463155806672053127596948538057364208384918887095176052287817339462747644656858900936266123311152910816041524100214195937349786431661556732702792109593543055579732660554677963552005378304619540636971842916168582734122217145885870814274090248185446421774876925093328785670674677381226752831653559245204578070541352576903253522738963847495646255940378924925007624386893776475310102323746733771474581625530698032499033676455430305274561512961214585944432150749051491453950981001388737926379964873728396416897555132275962011838248650746985492038097691932606437608743209385602815642849756549307909733854185583515789409814007691892389063090542534883896831762904120212949167195811935791203162514344096503132835216728021372415947344095498316138322505486708172221475138425166790445416617303200820330902895488808516797258495813407132180533988828139346049850532340472595097214331492586604248511405819579711564191458842833000525684776874305916390494306871343118796189637475503362820939949343690321031976898112055595369465424704173323895394046035325396758354395350516720261647961347790912327995264929045151148307923369382166010702872651938143844844532639517394110131152502750465749343063766541866128915264446926222884366299462732467958736383501937142786471398054038215513463223702071533134887083174146591492406359493020921122052610312390682941345696785958518393491382340884274312419099152870804332809132993078936867127413922890033069995875921815297612482409116951587789964090352577345938248232053055567238095022266790439614231852991989181065554412477204508510210071522352342792531266930108270633942321762570076323139159349709946933241013908779161651226804414809765618979735043151396066913258379033748620836695475083280318786707751177525663963479259219733577949555498655214193398170268639987388347010255262052312317215254062571636771270010760912281528326508984359568975961038372157726831170734552250194121701541318793651818502020877326906133592182000762327269503283827391243828198170871168108951187896746707073377869592565542713340052326706040004348843432902760360498027862160749469654989210474443927871934536701798673920803845633723311983855862638008516345597194441994344624761123844617615736242015935078520825600604101556889899501732554337298073561699861101908472096600708320280569917042590103876928658336557728758684250492690370934262028022399861803400211320742198642917383679176232826444645756330336556777374808644109969141827774253417010988435853189339175934511574023847292909015468559163792696196841000676598399744972047287881831200233383298030567865480871476464512824264478216644266616732096012564794514827125671326697067367144617795643752391742928503987022583734069852309190464967260243411270345611114149835783901793499713790913696706497637127248466613279908254305449295528594932793818341607 827091326680865655921102733746700132583428715240835661522165574998431236278287106649401564670141943713823863454729606978693335973109537126499416282656463708490580151538205338326511289504938566468752921135932220265681856418260827538790002407915892646028490894922299966167437731347776134150965262448332709343898412056926145108857812249139616912534202918139898683901335795857624435194008943955180554746554000051766240202825944828833811886381749594284892013520090951007864941868256009273977667585642598378587497776669563350170748579027248701370264203283965756348010818356182372177082236423186591595883669487322411726504487268392328453010991677518376831599821263237123854357312681202445175401852132663740538802901249728180895021553100673598184430429105288459323064725590442355960551978839325930339572934663055160430923785677229293537208416693134575284011873746854691620648991164726909428982971065606801805807843600461866223562874591385185904416250663222249561448724413813849763797102676020845531824111963927941069619465426480006761727618115630063644321116224837379105623611358836334550102286170517890440570419577859833348463317921904494652923021469259756566389965893747728751393377105569802455757436190501772466214587592374418657530064998056688376964229825501195065837843125232135309371235243969149662310110328243570065781487677299160941153954063362752423712935549926713485031578238899567545287915578420483105749330060197958207739558522807307048950936235550769837881926357141779338750216344391014187576711938914416277109602859415809719913429313295145924373636456473035037374538503489286113141638094752301745088784885645741275003353303416138096560043105860548355773946625033230034341587814634602169235079216111013148948281895391028916816328709309713184139815427678818067628650978085718262117003140003377301581536334149093237034703637513354537634521050370995452942055232078817449370937677056009306353645510913481627378204985657055608784211964039972344556458607689515569686899384896439195225232309703301037277227710870564912966121061494072782442033414057441446459968236966118878411656290355117839944070961772567164919790168195234523807446299877664824873753313018142763910519234685081979001796519907050490865237442841652776611425351538665162781316090964802801234493372427866930894827913465443931965254154829494577875758599482099181824522449312077768250830768282335001597040419199560509705364696473142448453825888112602753909548852639708652339052941829691802357120545328231809270356491743371932080628731303589640570873779967845174740515317401384878082881006046388936711640477755985481263907504747295012609419990373721246201677030517790352952793168766305099837441859803498821239340919805055103821539827677291373138006715339240126954586376422065097810852907639079727841301764553247527073788764069366420012194745702358295481365781809867944020220280822637957006755393575808086318932075864444206644691649334467698180811716568665213389686173592450920801465312529777966137198695916451869432324246404401672381978020728394418264502183131483366019384891972317817154372192103946638473715630226701801343515930442853848941825678870721238520597263859224934763623122188113706307506918260109689069251417142514218153491532129077723748506635489170892850760234351768218355008829647410655814882049239533702270536705630750317499788187009989251020178015601042277836283644323729779929935160925884515772055232896978333126427671291093993103773425910592303277652667641874842441076564447767097790392324958416348527735171981064673837142742974468992320406932506062834468937543016787815320616009057693404906146176607094380110915443261929000745209895959201159412324102274845483') print(E-e)

以上就是python实现高精度求自然常数e过程详解的详细内容,更多关于python高精度求自然常数e的资料请关注软件开发网其它相关文章!



精度 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号