Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Liczba PI i E
  • Język programu: Basic
  • Platforma: Atari XE/XL
  • Kod zamieszczono w Bajtek 06/1989
  • Autor listingu: Wojciech Przybył
  • Listing nadesłał: Amarok

Stan listingu:

4
Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku

Wyznaczenie niektórych stałych matematycznych z dużą dokładnością jest właściwie sztuką dla sztuki.

Niemniej w wielu dziedzinach nauki i techniki dokładność pomiarów wzrasta ostatnio bardzo szybko i standardowe obliczenia dziesięciocyfrowe są już niewystarczające. Ogólny program obliczeń wielopozycyjnych został przedstawiony w „IKS-ie“ nr 5/86. Program ten umożliwia obliczenia stałych e i π z dowolną dokładnością, ale jest zbyt ogólny, aby mógł być dostatecznie szybki, stąd pomysł, żeby opracować programy szybsze.
Program 1 oblicza liczbę e z dowolną dokładnością, korzystając ze standardowego rozwinięcia funkcji wykładniczej na szereg Maclaurina, natomiast program 2 oblicza liczbę n, korzystając ze wzoru Gaussa i rozwinięcia funkcji arctg(x) na szereg potęgowy:
Przyspieszenie uzyskano poprzez obliczanie wyników pośrednich do niezbędnego minimum liczby miejsc znaczących + 1 cyfra zapasowa. Prócz tego, w programach wyeliminowano w miarę możliwości dzielenia, jako działanie około 3 razy dłuższe od mnożenia, dlatego właśnie, teoretycznie szybszy, o około 3.5%, program wykorzystosujący do obliczania liczby [pi] wzór Mellina (Młody Technik nr 2/89) działa na Atari 130XE wolniej, ponieważ wszystkie ułamki występujące w ostatnim wzorze mają nieskończone rozwinięcia dziesiętne. Czyżby Gauss już wtedy przewidział istnienie komputerów liczących w systemie dziesiętnym?
Program 1 wylicza na Atari pierwsze sto cyfr po przecinku rozwinięcia liczby e w czasie 30 s, natomiast program 2-100 cyfr rozwinięcia liczby — w ciągu 53 s, co oznacza, że program 1 jest ponad sześciokrotnie szybszy, a program 2 — 30 razy szybszy od programu zaprezentowanego w „IKS-ie“ 5/86. Pierwszych 500 cyfr po przecinku liczby e program 1 wylicza w ciągu niecałych 8 min., a 1000 cyfr — w 27,5 min. Dla liczby [pi] czasy obliczeń wg programu 2 wynoszą odpowiednio 19 min. i 1 h 14 min.

Listing pochodzi z repozytorium listingów Basic autorstwa AMAROK

Jak zaladować (najprostsza metoda)

ALTIRRA: 

  • Zbootować dyskietkę.
  • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
  • Cold Reset (Powinien wejść do Basica)
  • LOAD "D0:E.BAS" lub LOAD "D0:PI.BAS"
  • RUN