Formula moderne për llogaritjen e pi. Numri pi - kuptimi, historia, kush e shpiku atë

03 korrik

Si të rivendosni aksesin në sistemin operativ pas një sulmi nga virusi Petya: rekomandime nga Policia Kibernetike e Ukrainës

Departamenti i Policisë Kibernetike i Policisë Kombëtare të Ukrainës ka publikuar rekomandime për përdoruesit se si të rivendosin aksesin në kompjuterë që kanë qenë subjekt i një sulmi kibernetik nga virusi i enkriptimit Petya.A.

Në procesin e studimit të virusit ransomware Petya.A, studiuesit identifikuan disa opsione për ndikimin e malware (kur përdorni virusin me të drejta administratori):

Sistemi është komprometuar plotësisht. Për të rikuperuar të dhënat, kërkohet një çelës privat dhe në ekran shfaqet një dritare që ju kërkon të paguani një shpërblim për të marrë çelësin për të deshifruar të dhënat.

Kompjuterët janë të infektuar dhe pjesërisht të koduar. Sistemi ka filluar procesin e kriptimit, por faktorët e jashtëm(p.sh. ndërprerja e energjisë elektrike, etj.) kanë ndaluar procesin e enkriptimit.

Kompjuterët janë të infektuar, por procesi i kriptimit të tabelës MFT nuk ka filluar ende.

Sa i përket opsionit të parë, për fat të keq, për momentin nuk ka ende një metodë të përcaktuar që është e garantuar për të deshifruar të dhënat. Specialistët nga Departamenti i Policisë Kibernetike, SBU, DSSTZI, kompanitë ukrainase dhe ndërkombëtare të IT po punojnë në mënyrë aktive për të zgjidhur këtë çështje.

Në të njëjtën kohë, në dy rastet e fundit ekziston një shans për të rivendosur informacionin që është në kompjuter, pasi tabela e ndarjes MFT nuk është e prishur ose e prishur pjesërisht, që do të thotë se duke rivendosur sektorin e nisjes MBR të sistemit, kompjuteri do të fillojë dhe funksionojë.

Kështu, programi i modifikuar i Trojan "Petya" funksionon në disa faza:

Së pari: marrja e të drejtave të privilegjuara (të drejtat e administratorit). Në shumë kompjuterë në arkitekturën e Windows (Active Directory), këto të drejta janë të çaktivizuara. Virusi ruan sektorin origjinal të nisjes për sistemi operativ(MBR) në një formë të koduar të operacionit të bitit XOR (xor 0x7), dhe më pas shkruan ngarkuesin e tij në vend të sektorit të mësipërm, pjesa tjetër e kodit trojan shkruhet në sektorët e parë të diskut. Ky hap krijon një skedar teksti rreth kriptimit, por të dhënat nuk janë ende të koduara.

Pse është kështu? Sepse ajo që përshkruhet më sipër është vetëm përgatitja për enkriptimin e diskut dhe do të fillojë vetëm pasi të rifillojë sistemi.

Së dyti: pas rindezjes, fillon faza e dytë e funksionimit të virusit - kriptimi i të dhënave, ai tani kthehet në sektorin e konfigurimit të tij, në të cilin vendoset flamuri që të dhënat nuk janë ende të koduara dhe duhet të kodohen. Pas kësaj, fillon procesi i enkriptimit, i cili duket si programi Check Disk.

Procesi i enkriptimit filloi, por faktorët e jashtëm (p.sh.: ndërprerja e energjisë elektrike, etj.) ndaluan procesin e enkriptimit;
Procesi i kriptimit të tabelës MFT nuk ka filluar ende për shkak të faktorëve që nuk vareshin nga përdoruesi (një mosfunksionim i virusit, reagimi i softuerit antivirus ndaj veprimeve të virusit, etj.).

Boot nga instalimi Disk Windows;

Nëse, pas nisjes nga disku i instalimit të Windows, është e dukshme një tabelë me ndarje të diskut të ngurtë, atëherë mund të filloni procesin e rikuperimit të MBR;

Për Windows XP:

Pas ngarkimit të diskut të instalimit të Windows XP në RAM PC, shfaqet kutia e dialogut "Instalo Windows XP Professional", që përmban një menu përzgjedhjeje, duhet të zgjidhni opsionin "për të rivendosur Windows XP duke përdorur Recovery Console, shtypni R". . Shtypni tastin "R".

Paneli i Rimëkëmbjes do të ngarkohet.

Nëse kompjuteri ka një OS të instaluar dhe është (si parazgjedhje) i instaluar në diskun C, do të shfaqet mesazhi i mëposhtëm:

"1:C:\WINDOWS Në cilën kopje të Windows duhet të identifikohem?"

Shkruani tastin "1", shtypni butonin "Enter".

Do të shfaqet një mesazh: "Fut fjalëkalimin e administratorit". Futni fjalëkalimin tuaj, shtypni "Enter" (nëse nuk ka fjalëkalim, thjesht shtypni "Enter").

Prompt-i i sistemit duhet të shfaqet: C:\WINDOWS> futni fixmbr

Më pas do të shfaqet mesazhi "PARALAJMËRIM".

"A po konfirmoni hyrjen e MBR-së së re?" Shtypni butonin "Y".

Do të shfaqet një mesazh: "Një sektor i ri kryesor i nisjes po krijohet në diskun fizik \Device\Harddisk0\Partition0".

"Sektori i ri primar i nisjes është krijuar me sukses."

Për Windows Vista:

Shkarkoni Windows Vista. Zgjidhni gjuhën tuaj dhe paraqitjen e tastierës. Në ekranin e mirëseardhjes, klikoni "Rivendosni kompjuterin tuaj". Windows Vista do të modifikojë menynë e kompjuterit.

Zgjidhni sistemin tuaj operativ dhe klikoni Next.

Kur të shfaqet dritarja Opsionet e Rimëkëmbjes së Sistemit, klikoni në vijën e komandës.

Kur të shfaqet komanda, shkruani komandën:

bootrec/FixMbr

Prisni që operacioni të përfundojë. Nëse gjithçka është e suksesshme, një mesazh konfirmimi do të shfaqet në ekran.

Për Windows 7:

Shkarkoni Windows 7.

Zgjidhni një gjuhë.

Zgjidhni paraqitjen e tastierës tuaj.

Zgjidhni sistemin tuaj operativ dhe klikoni Next. Kur zgjidhni një sistem operativ, duhet të kontrolloni "Përdor mjetet e rimëkëmbjes që mund të ndihmojnë në zgjidhjen e problemeve me fillimin e Windows".

Në ekranin e opsioneve të rimëkëmbjes së sistemit, klikoni butonin e linjës së komandës në ekranin e opsioneve të rimëkëmbjes së sistemit të Windows 7

Kur komanda e linjës nis me sukses, futni komandën:

bootrec/fixmbr

Shtypni tastin Enter dhe rinisni kompjuterin tuaj.

Për Windows 8

Shkarkoni Windows 8.

Në ekranin e mirëseardhjes, klikoni butonin Rivendos kompjuterin tuaj

Windows 8 do të rivendosë menunë e kompjuterit

Zgjidhni Command Prompt.

Kur të ngarkohet komanda, shkruani komandat e mëposhtme:

bootrec/FixMbr

Prisni që operacioni të përfundojë. Nëse gjithçka është e suksesshme, një mesazh konfirmimi do të shfaqet në ekran.

Shtypni tastin Enter dhe rinisni kompjuterin tuaj.

Për Windows 10

Shkarkoni Windows 10.

Në ekranin e mirëseardhjes, klikoni butonin "Riparoni kompjuterin tuaj".

Zgjidhni "Zgjidhja e problemeve"

Zgjidhni Command Prompt.

Kur të ngarkohet komanda, shkruani komandën:

bootrec/FixMbr

Prisni që operacioni të përfundojë. Nëse gjithçka është e suksesshme, një mesazh konfirmimi do të shfaqet në ekran.

Shtypni tastin Enter dhe rinisni kompjuterin tuaj.

Pas procedurës së rikuperimit të MBR, studiuesit rekomandojnë skanimin e diskut me programe antivirus për skedarë të infektuar.

Ekspertët e policisë kibernetike theksojnë se veprimet e specifikuara janë gjithashtu të rëndësishme nëse procesi i enkriptimit është nisur, por është ndërprerë nga përdoruesi duke fikur energjinë e kompjuterit procesi fillestar enkriptimi. NË në këtë rast, pas ngarkimit të sistemit operativ, mund të përdorni software për të rivendosur skedarët (si RStudio), më pas kopjoni ato në media të jashtme dhe riinstaloni sistemin.

Vihet re gjithashtu se nëse përdorni programe të rikuperimit të të dhënave që regjistrojnë sektorin e tyre të nisjes (si Acronis True Image), virusi nuk e prek këtë ndarje dhe mund ta ktheni gjendjen e punës së sistemit në datën e pikës së kontrollit.

Policia kibernetike raportoi se përveç të dhënave të regjistrimit të siguruara nga përdoruesit e programit M.E.doc, nuk është transmetuar asnjë informacion.

Kujtojmë se më 27 qershor 2017, një sulm kibernetik në shkallë të gjerë i virusit të enkriptimit Petya.A filloi në sistemet IT të kompanive dhe agjencive qeveritare ukrainase.

Studiuesit dhe ekspertët e sigurisë kibernetike raportojnë se virusi, i cili u godit më së shumti nga sulmi në Ukrainë, ku virusi ishte shënjestruar fillimisht, u krijua me qëllimin e qëllimshëm për të çaktivizuar plotësisht makinat e viktimave dhe nuk përfshin një sistem për deshifrimin e informacionit. Nëse virusi Petya.C ka infektuar një kompjuter, në një fazë të caktuar përdoruesi mund të rifillojë sistemin, por nuk do të jetë më e mundur të deshifrohet informacioni.

Përfaqësuesit e kompanive Cybersecurity and Co dhe Positive Technologies, si dhe përfaqësuesi zyrtar i SBU të Ukrainës, thanë se në shenjat e para të infeksionit mënyra e vetme Për të parandaluar enkriptimin e informacionit, fikni kompjuterin.

Kur kodi me qëllim të keq futet në pajisjen e viktimës, virusi krijon një detyrë të vonuar për të rindezur pajisjen. Deri atëherë, mund të ekzekutoni komandën bootrec /fixMbr për të riparuar ndarjen. Për shkak të kësaj, sistemi do të mbetet funksional, por skedarët do të jenë ende të koduar. Kjo është një biletë me një drejtim. Petya.C funksionon në atë mënyrë që kur infektohet, gjeneron një çelës të veçantë deshifrimi, i cili fshihet pothuajse menjëherë.

Pas enkriptimit me sukses të informacionit të kompjuterit, në ekran shfaqet një mesazh që kërkon të paguani 300 dollarë në bitcoin në mënyrë që të merrni çelësin për të deshifruar informacionin. Disa mijëra dollarë tashmë janë depozituar në llogarinë e hakerëve, por asnjë nga viktimat nuk ka marrë kodin e kërkuar. Fakti është se ofruesi gjerman email bllokoi kutinë postare të sulmuesve, e cila ishte mënyra e vetme për të kontaktuar hakerët. Për më tepër, përfaqësuesit e Kaspersky Lab raportuan se vetë autorët e Petya.C nuk kanë aftësia fizike deshifroni kompjuterët e viktimave të tij, pasi virusi nuk parashikon krijimin e një identifikuesi për kompjuterin e viktimës, i cili do t'i lejonte hakerët të dërgojnë çelësin.

Për të kriptuar pajisjet, Petya.C përdor cenueshmërinë EternalBlue, e cila u zbulua nga NSA në fillim të këtij viti. I njëjti shfrytëzim u përdor nga krijuesit e ransomware WannaCry në maj. Microsoft lëshoi ​​arnimet e nevojshme në mars të këtij viti dhe madje përditësoi Windows XP për të parandaluar infeksione të mëtejshme. Kompania paralajmëroi se sulme të tilla nga një pjesë të madhe gjasat do të përsëriten, kështu që përdoruesit duhet të përditësojnë kompjuterët e tyre sa më shpejt të jetë e mundur. Askush nuk e mohon faktin që në të ardhmen mund të shfaqet një tjetër Vasia ose Lyosha, e cila do të përpiqet të përsërisë "suksesin" e WannaCry ose Petya.C.

Kujtojmë se Microsoft njoftoi një sërë ndryshimesh në sistemet e sigurisë së Windows 10, të cilat janë bërë për të parandaluar sulmet e përsëritura në të ardhmen. Kompania ka tashmë (ajo është përdorur në sulmet WannaCry dhe Petya.C) dhe gjithashtu do të shtojë, duke e bërë më të vështirë përdorimin e shfrytëzimit për të infektuar kompjuterin e viktimës.

27.06.2017, për ata që nuk bëjnë kopje rezervë në media të lëvizshme, u bë dita më e zezë kur virusi fshirës Petya në vetëm gjysmë ore të punës së tij shkatërroi javën e dikujt dhe 10-12 vjet punë të dikujt dhe arkivoi skedarë të vlefshëm. , bazat e të dhënave dhe gjëra të tjera. I detyruar për të filluar jetën me fletë e pastër. Sidoqoftë, ekziston një shans për të ruajtur të paktën arkivat dhe fotot e Outlook. Detaje nën prerje.
Virusi funksionoi në dy faza: ai kodoi skedarët (jo të gjithë dhe jo plotësisht), më pas nisi një rindezje dhe, pas rindezjes, kodoi ngarkuesin e nisjes (MBR) të hard diskut. Si rezultat, hard disku u shndërrua në një "kungull" të kushtëzuar nga e cila nuk mund të tërhiqej asgjë.
Nëse PC i mbijetoi vetëm fazës së parë, atëherë pas rivendosjes së MBR, mund të vazhdoni plotësisht të punoni në PC dhe të vëzhgoni pasojat e kriptorit të skedarit dhe të kërkoni ato që mbijetuan. Nëse PC ka kaluar në dy faza, atëherë gjithçka është shumë më keq dhe madje edhe thjesht nxjerrja e skedarëve është shumë më e vështirë.

Praktikisht nuk ka asnjë kërkim për informacion në RuNet se si të ruaj informacionin nga një hard disk i tillë, kështu që më duhej të zgjidhja në mënyrë empirike strategjinë optimale për kërkimin dhe rivendosjen e asaj që mund të mbijetonte. Rreth një duzinë programe të rikuperimit të informacionit u testuan, por shumica e informacionit u morën duke përdorur programin R-Studio, i cili do të diskutohet më tej, me një përshkrim të sekuencës së veprimeve për rikuperim (të gjitha veprimet do të kryhen nën Windows 7, por mendoj se nuk ka rëndësi se çfarë versioni të Windows-it keni vetëm R-studio që funksionon).

Do të them menjëherë që mund të nxirrni pothuajse të gjithë skedarët, por ato do të kodohen, përveç skedarëve që nuk ishin të koduar, zakonisht foto dhe video. Do të jetë e mundur të rivendosni disa skedarë nëse keni shërbimet e ofruara nga zhvilluesit e formatit përkatës të skedarit. Duke përdorur shembullin më poshtë, ne do të shikojmë procesin e shpëtimit të një skedari arkivi nga Outlook.

Pra, sekuenca e veprimeve:

1. Lidhni një disk të koduar të paformatuar (kjo është një kërkesë kryesore; nëse disku është formatuar ose sistemi operativ është riinstaluar në të, atëherë shanset për të rikuperuar ndonjë gjë priren në zero), i cili ka kaluar në 2 faza të enkriptimit me humbjen e sistemin e skedarëve, me një kompjuter me Windows (lidheni Mund të lidheni drejtpërdrejt me motherboard nëpërmjet portave sata/ide ose nëpërmjet përshtatësve USB, cilido që është më i përshtatshëm për ju). Dhe pas nisjes së kompjuterit, marrim një mesazh për nevojën për të formatuar diskun e sapolidhur (në rastin tim është disku G).

Pamja e ekranit


Kliko anulo. Ne sigurohemi që disku ynë është me të vërtetë i dëmtuar, ai do të përcaktojë në menaxherin e diskut sistemi i skedarëve RAW:

Pamja e ekranit



2. Hapni programin R-Studio (kam përdorur versionin 8.2) dhe shikoni disqet e gjetura. Hard disku ynë i testuar 320 GB u lidh nëpërmjet një stacioni docking USB 3.0 dhe u identifikua si JMicron Tech 023 nën shkronjën "G".

Pamja e ekranit



Më pas, klikoni dy herë në rreshtin me diskun "G", si në figurën e mësipërme, dhe prisni që disku të përfundojë skanimin.

3. Një dritare R-Studio do të hapet me rezultatet e skanimit (shih figurën më poshtë):

Pamja e ekranit



Si rregull, ka shumë pak dosje me një emër të qartë, të gjitha gjërat më të vlefshme janë në seksionin "Skedarët e gjetur shtesë". Prandaj, le të kalojmë në hapin tjetër.

4. Zgjidhni me miun rreshtin “Additionally found files” dhe shtypni butonin “Find/mark” në panelin e kontrollit të programit.

5. Në dritaren që hapet, zgjidhni një kërkim sipas zgjerimit të skedarit dhe specifikoni shtesën pst (formatin e skedarit për dosjet e arkivit të Outlook) dhe klikoni butonin "Po".

Pamja e ekranit



6. Një kërkim do të gjejë skedarë të arkivuar, mund të ketë shumë prej tyre në dosje të ndryshme. Prandaj, ne fokusohemi në rrugën ku janë ruajtur skedarët tuaj të arkivit. Në shembullin e mëposhtëm, mund të shihni se skedarët që po kërkoni ndodheshin në dosjen Outlook Files.

Pamja e ekranit



Ju lutemi vini re se nëse shikoni menuja e majtë dhe shkoni lart në hierarkinë e dosjeve, mund të shihni se kjo dosje ndodhet në dosjen e llogarisë së përdoruesit dhe ka dosje Desktop, Dokumentet, etj. Në këtë mënyrë ju mund të nxirrni fotot dhe skedarët e tjerë që përdoruesi ka ruajtur në këto dosje.

Pamja e ekranit



7. Më pas, kontrolloni kutitë për skedarët që kërkoni me shtesën pst dhe klikoni butonin "Rikuem të shënuar", tregoni vendndodhjen për të ruajtur skedarët e ruajtur (në rastin tim, kjo është dosja "Rikuem" në diskun C). Ne presim që procesi i kopjimit të skedarit të përfundojë.

Pamja e ekranit



8. Skedari i arkivit i rikuperuar zakonisht dëmtohet dhe nuk zbulohet nga Outlook. Për fat të mirë, virusi kodoi vetëm megabajtin e parë të skedarëve të mëdhenj, duke e lënë pjesën tjetër të paprekur. Prandaj, duhet të përpiqemi të rivendosim strukturën e arkivit, ka disa mënyra për ta bërë këtë:

A) Përdorni programin SCANPST të përfshirë në paketën standarde të MS Office. Për shembull, në MS Office 2010, ky mjet është i vendosur në dosjen C:\Program Files (x86)\Microsoft Office\Office14\ nëse keni Windows 64-bit dhe përgjatë rrugës C:\Program Files\Microsoft Office\Office14 kur përdorni një version 32-bit të Windows.

B) Përdorni shërbimet komunale zhvilluesit e palëve të treta. Mund të gjeni shumë prej tyre në Google.

Unë përdora opsionin e parë dhe, në parim, funksionoi në të gjithë PC-të që më sollën për restaurim.

Po bashkangjit edhe një lidhje me postimin udhëzime hap pas hapi në punën me programin SCANPST.

Kjo është e gjitha, skedarët e tjerë restaurohen duke përdorur një algoritëm të ngjashëm, thjesht duhet të zëvendësoni shtesën e dëshiruar të skedarit, ose të lëvizni manualisht nëpër të gjitha dosjet në seksionin "Skedarët e gjetur shtesë" dhe të zgjidhni se çfarë saktësisht duhet të restaurohet.
Nëse postimi im dikujt i duket "kapiten", ju lutemi mos e kritikoni shumë, jo të gjithë kanë përvojë në rikuperimin e të dhënave dhe mjete të provuara. Nëse keni akoma pyetje, mund të shkruani në një PM ose këtu në komente.

Kohët e fundit, ekziston një formulë elegante për llogaritjen e Pi-së, e botuar për herë të parë në 1995 nga David Bailey, Peter Borwein dhe Simon Plouffe:

Do të duket: çfarë është e veçantë për të - ka shumë formula për llogaritjen e Pi: nga metoda e shkollës Monte Carlo tek integrali i pakuptueshëm Poisson dhe formula e François Vieta nga mesjeta e vonë. Por është pikërisht kjo formulë që ia vlen t'i kushtohet vëmendje vëmendje të veçantë- ju lejon të llogaritni shenja e n-të numrat pi pa gjetur të mëparshmet. Për informacion mbi mënyrën se si funksionon kjo, si dhe kodin e gatshëm në C që llogarit shifrën 1,000,000, ju lutemi abonohuni.

Si funksionon algoritmi për llogaritjen e shifrës së N-të të Pi?
Për shembull, nëse na duhet shifra e 1000-të heksadecimal e Pi, ne e shumëzojmë të gjithë formulën me 16^1000, duke e kthyer kështu faktorin përpara kllapave në 16^(1000-k). Gjatë fuqizimit, ne përdorim algoritmin e fuqizimit binar ose, siç do të tregojë shembulli më poshtë, fuqizimin modul. Pas kësaj, ne llogarisim shumën e disa termave të serisë. Për më tepër, nuk është e nevojshme të llogaritet shumë: ndërsa k rritet, 16^(N-k) zvogëlohet shpejt, kështu që termat pasues nuk do të ndikojnë në vlerën e numrave të kërkuar). Kjo është e gjitha magji - e shkëlqyer dhe e thjeshtë.

Formula Bailey-Borwine-Plouffe u gjet nga Simon Plouffe duke përdorur algoritmin PSLQ, i cili u përfshi në listën e 10 algoritmeve më të mira të shekullit në 2000. Vetë algoritmi PSLQ u zhvillua nga Bailey. Këtu është një seri meksikane për matematikanët.
Nga rruga, koha e funksionimit të algoritmit është O (N), përdorimi i kujtesës është O (log N), ku N është numri serial shenjën e dëshiruar.

Mendoj se do të ishte e përshtatshme të citohej kodi në C i shkruar drejtpërdrejt nga autori i algoritmit, David Bailey:

/* Ky program zbaton algoritmin BBP për të gjeneruar disa shifra heksadecimal duke filluar menjëherë pas një id pozicioni të caktuar, ose me fjalë të tjera duke filluar në pozicionin id + 1. Në shumicën e sistemeve që përdorin aritmetikën me pikë lundruese IEEE 64-bit, ky kod funksionon si duhet për sa kohë që d është më pak se afërsisht 1,18 x 10^7. Nëse mund të përdoret aritmetika 80-bit, ky kufi është dukshëm më i lartë. Çfarëdo aritmetike të përdoret, rezultatet për një id të pozicionit të caktuar mund të kontrollohen duke përsëritur me id-1 ose id+1 dhe duke verifikuar që shifrat gjashtëkëndore mbivendosen në mënyrë të përsosur me një zhvendosje prej një, me përjashtim të disa shifrave pasuese. Thyesat që rezultojnë janë zakonisht të sakta me të paktën 11 shifra dhjetore dhe të paktën 9 shifra gjashtëkëndore. */ /* David H. Bailey 2006-09-08 */ #përfshi #përfshi int main() ( pid i dyfishtë, s1, s2, s3, s4; seri të dyfishta (int m, int n); ihex i pavlefshëm (x dyfishtë, int m, char c); int id = 1000000; #define NHX 16 char chx ; - s3 - s4, pid = pid - (int) pid + 1.; fraksion = %i\n; ) void ihex (x dyfishtë, int nhx, char chx) /* Kjo kthen, në chx, shifrat e para nhx të fraksionit të x. */ ( int i; dyfish y; char hx = "0123456789ABCDEF"; y = fabs (x); për (i = 0; i< nhx; i++){ y = 16. * (y - floor (y)); chx[i] = hx[(int) y]; } } double series (int m, int id) /* This routine evaluates the series sum_k 16^(id-k)/(8*k+m) using the modular exponentiation technique. */ { int k; double ak, eps, p, s, t; double expm (double x, double y); #define eps 1e-17 s = 0.; /* Sum the series up to id. */ for (k = 0; k < id; k++){ ak = 8 * k + m; p = id - k; t = expm (p, ak); s = s + t / ak; s = s - (int) s; } /* Compute a few terms where k >= id. */ për (k = id; k<= id + 100; k++){ ak = 8 * k + m; t = pow (16., (double) (id - k)) / ak; if (t < eps) break; s = s + t; s = s - (int) s; } return s; } double expm (double p, double ak) /* expm = 16^p mod ak. This routine uses the left-to-right binary exponentiation scheme. */ { int i, j; double p1, pt, r; #define ntp 25 static double tp; static int tp1 = 0; /* If this is the first call to expm, fill the power of two table tp. */ if (tp1 == 0) { tp1 = 1; tp = 1.; for (i = 1; i < ntp; i++) tp[i] = 2. * tp; } if (ak == 1.) return 0.; /* Find the greatest power of two less than or equal to p. */ for (i = 0; i < ntp; i++) if (tp[i] >p) pushim;<= i; j++){ if (p1 >pt = tp;
p1 = p; r = 1.; /* Kryeni modulin e algoritmit binar eksponencial ak. */ për (j = 1; j= pt)( r = 16. * r; r = r - (int) (r / ak) * ak; p1 = p1 - pt; ) pt = 0,5 * pt; nëse (pt >= 1.)( r = r * r; r = r - (int) (r / ak) * ak; ) ) kthen r; )Çfarë mundësish ofron kjo? Për shembull: ne mund të krijojmë një sistem informatik të shpërndarë që llogarit numrin Pi dhe t'ia dorëzojë të gjithëve rekord i ri për sa i përket saktësisë së llogaritjes (e cila tani, meqë ra fjala, është 10 trilion vende dhjetore). Sipas të dhënave empirike, pjesë thyesore Pi përfaqëson normale

sekuenca e numrave

(edhe pse nuk ka qenë ende e mundur të vërtetohet kjo në mënyrë të besueshme), që do të thotë se sekuencat e numrave prej saj mund të përdoren në gjenerimin e fjalëkalimeve dhe thjesht