Pi'yi hesaplamak için modern formül. Pi sayısı - anlam, tarih, onu kim icat etti

03 Temmuz

Petya virüsünün saldırısından sonra işletim sistemine erişim nasıl geri yüklenir: Ukrayna Siber Polisinin önerileri

Ukrayna Ulusal Polisinin Siber Polis Departmanı, kullanıcılara Petya.A şifreleme virüsünün siber saldırısına maruz kalan bilgisayarlara erişimin nasıl yeniden sağlanacağı konusunda öneriler yayınladı.

Petya.A fidye yazılımı virüsünü inceleme sürecinde araştırmacılar, kötü amaçlı yazılımın etkisine ilişkin çeşitli seçenekler belirlediler (virüsü yönetici haklarıyla çalıştırırken):

Sistem tamamen tehlikeye girmiştir. Verileri kurtarmak için özel bir anahtar gereklidir ve ekranda, verilerin şifresini çözecek anahtarı almak için fidye ödemenizi isteyen bir pencere görüntülenir.

Bilgisayarlara virüs bulaşmış ve kısmen şifrelenmiştir. Sistem şifreleme işlemini başlattı ancak dış faktörler(örn: elektrik kesintisi vb.) şifreleme işlemini durdurdu.

Bilgisayarlara virüs bulaşmış ancak MFT tablosunun şifrelenmesi süreci henüz başlamamıştır.

İlk seçeneğe gelince, maalesef verinin şifresini çözme garantisi veren bir yöntem şu anda mevcut değil. Siber Polis Departmanı, SBU, DSSTZI, Ukraynalı ve uluslararası BT şirketlerinden uzmanlar bu sorunu çözmek için aktif olarak çalışıyor.

Aynı zamanda ikisinde son vakalar MFT bölümleme tablosu bozuk veya kısmen bozuk olmadığından bilgisayardaki bilgileri geri yükleme şansı vardır, bu da sistemin MBR önyükleme sektörünü geri yükleyerek bilgisayarın başlayacağı ve çalışacağı anlamına gelir.

Bu nedenle, değiştirilmiş Truva atı programı “Petya” birkaç aşamada çalışır:

Birincisi: ayrıcalıklı hakların (yönetici hakları) elde edilmesi. Windows mimarisindeki (Active Directory) birçok bilgisayarda bu haklar devre dışıdır. Virüs, orijinal önyükleme sektörünü korur. işletim sistemi(MBR) bir bit XOR işleminin (xor 0x7) şifrelenmiş biçimindedir ve daha sonra yukarıdaki sektörün yerine önyükleyicisini yazar, Truva atı kodunun geri kalanı diskin ilk sektörlerine yazılır. Bu adım, şifrelemeyle ilgili bir metin dosyası oluşturur ancak veriler aslında henüz şifrelenmemiştir.

Bu neden böyle? Çünkü yukarıda anlatılanlar sadece disk şifrelemeye hazırlıktır ve ancak sistem yeniden başlatıldıktan sonra başlayacaktır.

İkincisi: Yeniden başlatmanın ardından, virüsün işleminin ikinci aşaması başlar - veri şifreleme, şimdi verilerin henüz şifrelenmediğini ve şifrelenmesi gerektiğini belirten bayrağın ayarlandığı yapılandırma sektörüne dönüyor. Bundan sonra Check Disk programına benzeyen şifreleme işlemi başlar.

Şifreleme işlemi başlatıldı ancak dış etkenler (örn: elektrik kesintisi vb.) şifreleme işlemini durdurdu;
Kullanıcıya bağlı olmayan faktörler (virüsün arızalanması, anti-virüs yazılımının virüsün eylemlerine tepkisi vb.) nedeniyle MFT tablosunun şifrelenmesi süreci henüz başlamamıştır.

Kurulumdan önyükleme Windows diski;

Windows kurulum diskinden önyükleme yaptıktan sonra sabit disk bölümlerini içeren bir tablo görünüyorsa, MBR kurtarma işlemine başlayabilirsiniz;

Windows XP'de:

Windows XP kurulum diskini yükledikten sonra Veri deposu PC'de, bir seçim menüsü içeren “Windows XP Professional'ı Yükle” iletişim kutusu görüntülenir; “Kurtarma Konsolunu kullanarak Windows XP'yi geri yüklemek için R tuşuna basın” seçeneğini seçmelisiniz. . "R" tuşuna basın.

Kurtarma Konsolu yüklenecektir.

PC'de kurulu bir işletim sistemi varsa ve (varsayılan olarak) C sürücüsüne kuruluysa, aşağıdaki mesaj görünecektir:

"1:C:\WINDOWS Hangi Windows kopyasında oturum açmalıyım?"

"1" tuşunu yazın, "Enter" tuşuna basın.

Bir mesaj görünecektir: "Yönetici şifrenizi girin." Şifrenizi girin, "Enter" tuşuna basın (şifre yoksa sadece "Enter" tuşuna basın).

Sistem istemi görünmelidir: C:\WINDOWS> fixmbr komutunu girin

Daha sonra “UYARI” mesajı görünecektir.

"Yeni MBR'nin girişini onaylıyor musunuz?" "Y" tuşuna basın.

Bir mesaj görünecektir: "\Device\Harddisk0\Partition0 fiziksel diskinde yeni bir birincil önyükleme sektörü oluşturuluyor."

"Yeni birincil önyükleme sektörü başarıyla oluşturuldu."

Windows Vista'da:

Windows Vista'yı indirin. Dilinizi ve klavye düzeninizi seçin. Hoş Geldiniz ekranında "Bilgisayarınızı geri yükleyin" seçeneğini tıklayın. Windows Vista bilgisayar menüsünü düzenleyecektir.

İşletim sisteminizi seçin ve İleri'ye tıklayın.

Sistem Kurtarma Seçenekleri penceresi göründüğünde Komut İstemi'ne tıklayın.

Komut istemi göründüğünde şu komutu girin:

Bootrec/FixMbr

İşlemin tamamlanmasını bekleyin. Her şey başarılı olursa ekranda bir onay mesajı görünecektir.

Windows 7 için:

Windows 7'yi indirin.

Bir dil seçin.

Klavye düzeninizi seçin.

İşletim sisteminizi seçin ve İleri'ye tıklayın. Bir işletim sistemi seçerken "Windows'u başlatırken sorunları çözmeye yardımcı olabilecek kurtarma araçlarını kullanın" seçeneğini işaretlemelisiniz.

Sistem Kurtarma Seçenekleri ekranında, Windows 7 Sistem Kurtarma Seçenekleri ekranındaki Komut İstemi düğmesine tıklayın.

Komut istemi başarıyla önyüklendiğinde şu komutu girin:

önyükleme/düzeltmembr

Enter tuşuna basın ve bilgisayarınızı yeniden başlatın.

Windows 8 için

Windows 8'i indirin.

Hoş Geldiniz ekranında, Bilgisayarınızı geri yükleyin düğmesine tıklayın

Windows 8 bilgisayar menüsünü geri yükleyecek

Komut İstemi'ni seçin.

Komut istemi yüklendiğinde aşağıdaki komutları girin:

Bootrec/FixMbr

İşlemin tamamlanmasını bekleyin. Her şey başarılı olursa ekranda bir onay mesajı görünecektir.

Enter tuşuna basın ve bilgisayarınızı yeniden başlatın.

Windows 10 için

Windows 10'u indirin.

Karşılama ekranında "Bilgisayarınızı onarın" düğmesini tıklayın

"Sorun Giderme"yi seçin

Komut İstemi'ni seçin.

Komut istemi yüklendiğinde şu komutu girin:

Bootrec/FixMbr

İşlemin tamamlanmasını bekleyin. Her şey başarılı olursa ekranda bir onay mesajı görünecektir.

Enter tuşuna basın ve bilgisayarınızı yeniden başlatın.

MBR kurtarma prosedürünün ardından araştırmacılar, virüslü dosyalar için diskin antivirüs programlarıyla taranmasını öneriyor.

Siber polis uzmanları şunu belirtiyor: belirtilen eylemlerşifreleme işlemi başlatılmış ancak kullanıcı tarafından bilgisayarın gücü kapatılarak kesintiye uğratılmışsa da geçerlidir başlangıç ​​sürecişifreleme. İÇİNDE bu durumda, işletim sistemini yükledikten sonra kullanabilirsiniz yazılım dosyaları geri yüklemek için (RStudio gibi), ardından bunları harici ortama kopyalayın ve sistemi yeniden yükleyin.

Ayrıca boot sektörlerini kaydeden veri kurtarma programlarını (Acronis True Image gibi) kullanırsanız virüsün bu bölüme dokunmadığını ve sistemin çalışma durumunu kontrol noktası tarihine döndürebileceğinizi de belirtiyoruz.

Siber polis, M.E.doc programı kullanıcılarının sağladığı kayıt verileri dışında herhangi bir bilginin iletilmediğini bildirdi.

27 Haziran 2017'de Petya'nın büyük çaplı bir siber saldırısının gerçekleştiğini hatırlayalım. Ukrayna şirketlerinin ve devlet kurumlarının BT sistemlerinde bir şifreleme virüsü başladı.

Araştırmacılar ve siber güvenlik uzmanları, virüsün başlangıçta hedef alındığı Ukrayna'daki saldırıdan en çok etkilenen virüsün, kasıtlı olarak kurbanların makinelerini tamamen devre dışı bırakma hedefiyle oluşturulduğunu ve bilgilerin şifresini çözmeye yönelik bir sistem içermediğini belirtiyor. Petya.C virüsü bir bilgisayara bulaşmışsa, belirli bir aşamada kullanıcı sistemi yine de yeniden başlatabilir ancak bilgilerin şifresini çözmek artık mümkün olmayacaktır.

Cybersecurity and Co. ve Positive Technologies şirketlerinin temsilcilerinin yanı sıra Ukrayna SBU'nun resmi temsilcisi, enfeksiyonun ilk belirtilerinde şunları söyledi: tek yol Bilgilerin şifrelenmesini önlemek için bilgisayarı kapatın.

Kurbanın cihazına kötü amaçlı kod bulaştığında virüs, cihazı yeniden başlatmak için gecikmeli bir görev oluşturur. O zamana kadar bölümü onarmak için bootrec /fixMbr komutunu çalıştırabilirsiniz. Bu nedenle sistem çalışır durumda kalacak ancak dosyalar şifrelenmeye devam edecek. Bu tek yön bir bilet. Petya.C, virüs bulaştığında özel bir şifre çözme anahtarı oluşturacak ve bu anahtar neredeyse anında silinecek şekilde çalışıyor.

Bilgisayarın bilgileri başarılı bir şekilde şifrelendikten sonra ekranda, bilgilerin şifresini çözecek anahtarı almak için 300 $ bitcoin ödemenizi gerektiren bir mesaj görüntülenir. Bilgisayar korsanlarının hesabına halihazırda birkaç bin dolar yatırıldı ancak kurbanların hiçbiri gerekli kodu alamadı. Gerçek şu ki, Alman sağlayıcı e-posta Bilgisayar korsanlarıyla iletişim kurmanın tek yolu olan saldırganların posta kutusunu engelledi. Ayrıca Kaspersky Lab temsilcileri, Petya.C yazarlarının kendilerinin de bir bilgisinin olmadığını bildirdi. fiziksel yetenek Virüs, kurbanın bilgisayarları için bilgisayar korsanlarının anahtarı göndermesine izin verecek bir tanımlayıcı oluşturulmasını sağlamadığından kurbanlarının bilgisayarlarının şifresini çözer.

Petya.C, cihazları şifrelemek için bu yılın başlarında NSA tarafından sızdırılan EternalBlue güvenlik açığını kullanıyor. Aynı istismar, Mayıs ayında WannaCry fidye yazılımının yaratıcıları tarafından da kullanıldı. Microsoft, bu yılın Mart ayında gerekli yamaları yayınladı ve hatta daha fazla bulaşmayı önlemek için Windows XP'yi güncelledi. Şirket, bu tür saldırıların büyük bir pay olasılıklar tekrarlanacağı için kullanıcıların bilgisayarlarını mümkün olan en kısa sürede güncellemeleri gerekiyor. Gelecekte WannaCry veya Petya.C'nin "başarısını" tekrarlamaya çalışacak başka bir Vasia veya Lyosha'nın ortaya çıkabileceği gerçeğini kimse inkar etmiyor.

Microsoft'un gelecekte tekrarlanan saldırıları önlemek amacıyla Windows 10'un güvenlik sistemlerinde bir takım değişiklikler yaptığını duyurduğunu hatırlayalım. Şirket zaten (WannaCry ve Petya.C saldırılarında kullanılmıştı) ve ekleyecek, bu da istismarın kurbanın bilgisayarına bulaşmak için kullanılmasını daha da zorlaştıracak.

Çıkarılabilir medyaya yedekleme yapmayanlar için 27.06.2017, Petya silme virüsünün sadece yarım saatlik çalışmasıyla birinin haftasını, birinin 10-12 yıllık çalışmasını yok ettiği ve değerli dosyaları arşivlediği en kara gün oldu. , veritabanları ve diğer şeyler. Hayata başlamak zorunda kaldı temiz sayfa. Ancak en azından Outlook arşivlerini ve fotoğraflarını kaydetme şansı var. Kesimin altındaki ayrıntılar.
Virüs iki aşamada çalıştı: dosyaları şifreledi (hepsini değil, tamamen değil), ardından yeniden başlatmayı başlattı ve yeniden başlatmanın ardından sabit sürücünün önyükleme yükleyicisini (MBR) şifreledi. Sonuç olarak, sabit disk hiçbir şeyin çıkarılamayacağı koşullu bir "balkabağına" dönüştü.
PC yalnızca ilk aşamada hayatta kaldıysa, MBR'yi geri yükledikten sonra PC üzerinde çalışmaya tamamen devam edebilir ve dosya şifreleyicinin sonuçlarını gözlemleyebilir ve hayatta kalanları arayabilirsiniz. PC iki aşamadan geçtiyse, her şey çok daha kötüdür ve dosyaları çıkarmak bile çok daha zordur.

RuNet'te böyle bir sabit sürücüden bilgilerin nasıl kaydedileceğine dair pratik olarak hiçbir bilgi arayışı yok, bu yüzden hayatta kalabilecek olanı aramak ve geri yüklemek için en uygun stratejiyi ampirik olarak seçmek zorunda kaldım. Yaklaşık bir düzine bilgi kurtarma programı test edildi, ancak bilgilerin çoğu, kurtarma eylemlerinin sırasının bir açıklamasıyla birlikte daha fazla tartışılacak olan R-Studio programı kullanılarak alındı ​​​​(tüm eylemler Windows 7 altında gerçekleştirilecektir, ancak R-studio'nun hangi Windows sürümünü çalıştırdığınızın önemli olmadığını düşünüyorum).

Hemen hemen tüm dosyaları çıkarabileceğinizi söyleyeceğim, ancak şifrelenmemiş dosyalar, genellikle fotoğraflar ve videolar hariç, bunlar şifrelenecektir. İlgili dosya formatının geliştiricileri tarafından sağlanan yardımcı programlara sahipseniz, bazı dosyaları geri yüklemek mümkün olacaktır. Aşağıdaki örneği kullanarak bir arşiv dosyasını Outlook'tan kurtarma sürecine bakacağız.

Yani eylem sırası:

1. Biçimlendirilmemiş şifrelenmiş bir diski bağlayın (bu önemli bir gerekliliktir; disk biçimlendirilmişse veya işletim sistemi üzerine yeniden yüklenmişse, herhangi bir şeyi kurtarma şansı sıfıra düşer), bu da kayıpla 2 aşamalı şifrelemeden geçmiştir. dosya sistemini Windows çalıştıran bir PC'ye bağlayın (bağlantı Anakarta doğrudan sata/ide bağlantı noktaları veya USB adaptörleri aracılığıyla (hangisi sizin için daha uygunsa) bağlanabilirsiniz. Ve bilgisayarı başlattıktan sonra, yeni bağlanan sürücüyü biçimlendirmemiz gerektiğine dair bir mesaj alıyoruz (benim durumumda bu G sürücüsüdür).

Ekran görüntüsü


İptal'i tıklayın. Diskimizin gerçekten hasar görmüş olduğundan emin oluruz, disk yöneticisinde belirleyecektir. dosya sistemiÇİĞ:

Ekran görüntüsü



2. R-Studio programını başlatın (8.2 sürümünü kullandım) ve bulunan disklere bakın. Test 320 GB sabit diskimiz bir USB 3.0 yerleştirme istasyonu aracılığıyla bağlandı ve "G" harfi altında JMicron Tech 023 olarak tanımlandı.

Ekran görüntüsü



Daha sonra yukarıdaki şekilde olduğu gibi “G” diskinin bulunduğu satıra çift tıklayın ve diskin taramanın bitmesini bekleyin.

3. Tarama sonuçlarını içeren bir R-Studio penceresi açılacaktır (aşağıdaki şekle bakınız):

Ekran görüntüsü



Kural olarak, net bir ada sahip çok az klasör vardır; en değerli şeylerin tümü "Ek olarak bulunan dosyalar" bölümündedir. Bu nedenle bir sonraki adıma geçelim.

4. Fare ile “Ek olarak bulunan dosyalar” satırını seçin ve program kontrol panelindeki “Bul/İşaretle” düğmesine basın.

5. Açılan pencerede, dosya uzantısına göre bir arama seçin ve pst uzantısını (Outlook arşiv klasörleri için dosya formatı) belirtin ve “Evet” düğmesini tıklayın.

Ekran görüntüsü



6. Arama arşivlenmiş dosyaları bulacaktır; bunlardan birçoğu farklı klasörlerde olabilir. Bu nedenle arşiv dosyalarınızın depolandığı yola odaklanıyoruz. Aşağıdaki örnekte aradığınız dosyaların Outlook Dosyaları klasöründe bulunduğunu görebilirsiniz.

Ekran görüntüsü



Eğer bakarsanız lütfen unutmayın sol menü ve klasör hiyerarşisinde yukarı çıktığınızda, bu klasörün kullanıcı hesabı klasöründe bulunduğunu ve Masaüstü, Belgeler vb. klasörlerin bulunduğunu görebilirsiniz. Bu şekilde kullanıcının bu klasörlerde sakladığı fotoğrafları ve diğer dosyaları çıkarabilirsiniz.

Ekran görüntüsü



7. Ardından, pst uzantılı aradığınız dosyaların kutularını işaretleyin ve "İşaretli kurtar" düğmesini tıklayın, kaydedilen dosyaların kaydedileceği konumu belirtin (benim durumumda bu, C sürücüsündeki Kurtarma klasörüdür). Dosya kopyalama işleminin tamamlanmasını bekliyoruz.

Ekran görüntüsü



8. Kurtarılan arşiv dosyası genellikle hasarlıdır ve Outlook tarafından algılanmaz. Neyse ki virüs, büyük dosyaların yalnızca ilk megabaytını şifreledi ve geri kalanına dokunulmadı. Bu nedenle arşiv yapısını geri yüklemeye çalışmamız gerekiyor, bunu yapmanın birkaç yolu var:

A) Standart MS Office paketinde bulunan SCANPST yardımcı programını kullanın. Örneğin, MS Office 2010'da bu yardımcı program, 64 bit Windows kullanıyorsanız C:\Program Files (x86)\Microsoft Office\Office14\ klasöründe ve C:\Program Files\Microsoft Office\Office14 yolu üzerinde bulunur. Windows'un 32 bit sürümünü kullanırken.

B) Yardımcı programları kullanın üçüncü taraf geliştiriciler. Birçoğunu Google'da bulabilirsiniz.

İlk seçeneği kullandım ve prensip olarak restorasyon için bana getirilen tüm bilgisayarlarda çalıştı.

Ayrıca yazının linkini de ekliyorum adım adım talimatlar SCANPST yardımcı programıyla çalışma hakkında.

Hepsi bu, diğer dosyalar benzer bir algoritma kullanılarak geri yüklenir, yalnızca istediğiniz dosya uzantısını değiştirmeniz veya "Ek olarak bulunan dosyalar" bölümündeki tüm klasörleri manuel olarak kaydırmanız ve tam olarak neyin geri yüklenmesi gerektiğini seçmeniz gerekir.
Eğer paylaşımım birisine “kaptan” gibi görünüyorsa lütfen çok fazla eleştirmeyin, herkesin veri kurtarma deneyimi ve kanıtlanmış araçları yoktur. Hala sorularınız varsa PM'den veya buradan yorumlara yazabilirsiniz.

Son zamanlarda, Pi'yi hesaplamak için ilk kez 1995'te David Bailey, Peter Borwein ve Simon Plouffe tarafından yayınlanan zarif bir formül var:

Görünüşe göre bu konuda özel olan şey - Pi'yi hesaplamak için pek çok formül var: okul yöntemi Monte Carlo'dan anlaşılmaz Poisson integraline ve François Vieta'nın formülünden Geç Orta Çağ. Ancak dikkat etmeye değer olan tam da bu formüldür. özel ilgi- hesaplamanıza olanak tanır n'inci işaretöncekileri bulmadan pi sayıları. Bunun nasıl çalıştığına dair bilgi almak ve 1.000.000'uncu basamağı hesaplayan C dilindeki hazır kod için lütfen abone olun.

Pi'nin N'inci basamağını hesaplama algoritması nasıl çalışır?
Örneğin, Pi'nin 1000'inci onaltılık basamağına ihtiyacımız varsa, formülün tamamını 16^1000 ile çarparız, böylece parantezlerin önündeki faktörü 16^(1000-k) haline getiririz. Üstelleştirme yaparken ikili üstelleştirme algoritmasını veya aşağıdaki örnekte gösterileceği gibi modülo üstelleştirmeyi kullanırız. Bundan sonra serinin birkaç teriminin toplamını hesaplıyoruz. Üstelik çok fazla hesaplamaya gerek yok: k arttıkça 16^(N-k) hızlı bir şekilde azalır, böylece sonraki terimler gerekli sayıların değerini etkilemez). İşte hepsi sihir; zekice ve basit.

Bailey-Borwine-Plouffe formülü, Simon Plouffe tarafından 2000 yılında Yüzyılın En İyi 10 Algoritması listesine dahil edilen PSLQ algoritması kullanılarak bulunmuştur. PSLQ algoritmasının kendisi de Bailey tarafından geliştirildi. İşte matematikçiler hakkında bir Meksika dizisi.
Bu arada, algoritmanın çalışma süresi O(N), bellek kullanımı O(log N), burada N seri numarasıİstenilen işaret.

Algoritmanın yazarı David Bailey tarafından doğrudan yazılan C dilindeki kodu alıntılamanın uygun olacağını düşünüyorum:

/* Bu program, belirli bir konum kimliğinin hemen ardından başlayan veya başka bir deyişle konum kimliği + 1'den başlayan birkaç onaltılık basamak oluşturmak için BBP algoritmasını uygular. IEEE 64 bit kayan nokta aritmetiği kullanan çoğu sistemde bu kod düzgün çalışır. d yaklaşık 1,18 x 10^7'den küçük olduğu sürece. Eğer 80 bitlik aritmetik kullanılabiliyorsa bu sınır önemli ölçüde daha yüksektir. Hangi aritmetik kullanılırsa kullanılsın, belirli bir konum kimliğine ilişkin sonuçlar, id-1 veya id+1 ile tekrarlanarak ve onaltılık rakamların, muhtemelen birkaç sondaki rakam dışında, birlik bir ofsetle mükemmel bir şekilde üst üste bindiği doğrulanarak kontrol edilebilir. Ortaya çıkan kesirler tipik olarak en az 11 ondalık basamağa ve en az 9 onaltılık basamağa kadar doğrudur. */ /* David H. Bailey 2006-09-08 */ #include #katmak int main() ( double pid, s1, s2, s3, s4; double seri (int m, int n); void ihex (double x, int m, char c); int id = 1000000; #define NHX 16 karakter chx ; /* id rakamın hemen ardından gelir. */ s1 = seri (1, id); s3 = seri (5, id = 4. * s1 - 2); - s3 - s4; pid = pid - (int) pid + 1.; printf(" konum = %i\n); kesir = %.15f \n onaltılık basamaklar = %10.10s\n", id, pid, chx ); ) void ihex (double x, int nhx, char chx) /* Bu, x'in kesirinin ilk nhx onaltılık rakamını chx cinsinden döndürür. */ ( int i; double y; char hx = "0123456789ABCDEF"; y = fabs (x); for (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 >= kimlik. */ for (k = kimlik; 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) mola;<= i; j++){ if (p1 >pt = tp;
p1 = p; r = 1.; /* İkili üstel algoritmayı modulo ak gerçekleştir. */ for (j = 1; j= pt)( r = 16. * r; r = r - (int) (r / ak) * ak; p1 = p1 - pt; ) pt = 0,5 * pt; if (pt >= 1.)( r = r * r; r = r - (int) (r / ak) * ak; ) ) return r; ) Bu ne gibi fırsatlar sağlıyor? Örneğin: Pi sayısını hesaplayan ve bunu herkese ulaştıran dağıtılmış bir bilgi işlem sistemi oluşturabiliriz. yeni kayıt hesaplama doğruluğu açısından (bu arada, bu şu anda 10 trilyon ondalık basamaktır). Ampirik verilere göre, kesirli kısım Pi normali temsil eder

sayı dizisi

(bunu güvenilir bir şekilde kanıtlamak henüz mümkün olmasa da), bu da buradan gelen sayı dizilerinin şifre oluşturmada kullanılabileceği ve basitçe



rastgele sayılar veya kriptografik algoritmalarda (örneğin, karma). Bunu kullanmanın çok çeşitli yollarını bulabilirsiniz; sadece hayal gücünüzü kullanmanız yeterlidir.