Jak mogę używać wyjątkowo dużych liczb w programach arkuszy kalkulacyjnych?

3

Jeśli spróbuję obliczyć duże wykładniki w LibreOffice Calc lub OpenOffice.org Calc , wyniki okażą się błędne. Zobacz te dwa przykłady, w których obliczam 13 ^ 18,

Korzystanie z LibreOffice Calc

wprowadź opis zdjęcia tutaj

Korzystanie z OpenOffice.org Calc

wprowadź opis zdjęcia tutaj

Wynik jest błędny w obu przypadkach, co można znaleźć za pomocą kalkulatora ( gcalctool ).

wprowadź opis zdjęcia tutaj

Wszystkie powyższe testy zostały wykonane w Ubuntu. Nie mogę komentować programu Excel w MS Office, ponieważ nie mam do niego dostępu.

Teraz korzystanie z kalkulatora będzie możliwe, ale uciążliwe. Muszę wypełnić tabelę ponad pięćset wartościami. Wiem, że mogę skorzystać z twierdzenia Eulera lub małego twierdzenia Fermata lub ich następstw, ale tak naprawdę zamierzam użyć powyższej tabeli, aby wykazać ważność numeryczną (i użycie) tych twierdzeń.

Czy istnieje sposób na nakłonienie programów arkusza kalkulacyjnego do uzyskania poprawnych wyników?

Masroor
źródło

Odpowiedzi:

6

Czy istnieje sposób na nakłonienie programów arkusza kalkulacyjnego do uzyskania poprawnych wyników?

Prawdopodobnie nie.

Excel z pewnością i spodziewam się, że inne programy do obsługi arkuszy kalkulacyjnych (dla zgodności z Excelem) używają liczb zmiennoprzecinkowych opartych na 64-bitowym formacie IEEE. Jest to zaimplementowane sprzętowo w większości obecnych procesorów i dlatego jest szybkie (nawet arkusz kalkulacyjny o średniej wielkości może wymagać wielu obliczeń).

Ale zmiennoprzecinkowa jest reprezentacją o skończonej wielkości, dlatego będzie reprezentować tylko skończony podzbiór liczb rzeczywistych. Wszystko inne zostanie przybliżone lub doprowadzi do błędu.

Szczegóły tego ograniczenia są szeroko udokumentowane (np. Co każdy informatyk powinien wiedzieć o arytmetyki zmiennoprzecinkowej ), ale stają się dość techniczne.

Richard
źródło
1
Teraz, gdy istnieją formaty o wyższej precyzji , czy implementacja odbywa się sprzętowo, a zatem wyższa prędkość jest jedynym powodem, dla którego programy arkuszy kalkulacyjnych używają 64-bitowych formatów IEEE? Dlaczego nie pomyśleli o zapewnieniu opcji wybierania spośród sprzętu tylko szybkich obliczeń lub oprogramowania plus wolniejszych obliczeń ? Mam nadzieję, że zadałem głupie pytanie.
Masroor
1
Potrzeba tak dużych obliczeń nie jest typowa dla typowego użytkownika arkusza kalkulacyjnego. Jeśli masz do czynienia z tak dużymi formułami, zwykle przechodzisz na bardziej wyspecjalizowane oprogramowanie, takie jak Matlab lub Octive .
Scott Chamberlain,
@ScottChamberlain Wypróbowałem Octave, raczej skoczyłem do niego. Jednak generował również błędy dla dużych liczb. Oktawa nie obsługuje bezpośrednio dużych liczb, zobacz tutaj . Potem spróbowałem szałwii . W moim przypadku zadziałało jak urok. Korzystając z GNU Multiprecision Library (GMP), Sage może obsługiwać bardzo duże liczby , nawet liczby zawierające miliony lub miliardy cyfr. Dziękuję za wskazanie mi właściwego kierunku.
Masroor
Ponadto, zapomniałem powiedzieć, mędrzec ma ładny interfejs LaTeX, co czyni go jeszcze bardziej atrakcyjnym.
Masroor
1
@MMA Czy wystarczająca liczba komputerów używanych w programie Excel ma taką obsługę sprzętową (w cytowanym artykule wspomina się tylko o SPARC i System / 370: żadna z głównych platform stacjonarnych)? Czy z tego skorzystałaby wystarczająca liczba użytkowników? A może należy wydawać zasoby na funkcje arkusza kalkulacyjnego, z których skorzysta więcej użytkowników? Witamy w prawdziwym świecie nieograniczonych zasobów i wielu konkurencyjnych pomysłów na funkcje.
Richard
1

Jeśli jesteś użytkownikiem programu Excel, możesz wypróbować xNumbers. Jest to darmowy dodatek dostępny w Xnumbers for Excel

Ton Jeursen
źródło
the ability to calculate with up to 250 digits” - brzmi dobrze!
Mawg