[Excel] Wyliczanie dużych, dokładnych liczb
-
- Użytkownik
- Posty: 18
- Rejestracja: 27 paź 2009, o 17:36
- Płeć: Mężczyzna
- Lokalizacja: Zgierz
- Podziękował: 1 raz
[Excel] Wyliczanie dużych, dokładnych liczb
Witam. Mam za zadanie wyliczyć kilka dużych liczb w excelu. \(\displaystyle{ 100!}\), oraz \(\displaystyle{ 666^{666}}\).
Excel w swoich obliczeniach może wybrać tylko 10 cyfr do ktorych przybliża. Wątpię, by dało się to zmienić do dowolnej liczby cyfr, bo wtedy to zadanie byłoby bardzo łatwe. Ma ktoś może pomysł na funkcję która dałaby radę wybrać kilka ostatnich cyfr z liczby i utworzyć z niej liczbę? Chodzi mi o coś typu:
\(\displaystyle{ 412098412304982999 \rightarrow 82999}\) Wtedy miałbym iskierkę nadziei na zrobienie tego. Wszelkie inne sugestie bardzo miło widziane.
Excel w swoich obliczeniach może wybrać tylko 10 cyfr do ktorych przybliża. Wątpię, by dało się to zmienić do dowolnej liczby cyfr, bo wtedy to zadanie byłoby bardzo łatwe. Ma ktoś może pomysł na funkcję która dałaby radę wybrać kilka ostatnich cyfr z liczby i utworzyć z niej liczbę? Chodzi mi o coś typu:
\(\displaystyle{ 412098412304982999 \rightarrow 82999}\) Wtedy miałbym iskierkę nadziei na zrobienie tego. Wszelkie inne sugestie bardzo miło widziane.
Ostatnio zmieniony 9 mar 2017, o 18:27 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
- Vardamir
- Użytkownik
- Posty: 1913
- Rejestracja: 3 wrz 2010, o 22:52
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 6 razy
- Pomógł: 410 razy
[Excel] Wyliczanie dużych, dokładnych liczb
Nie musisz obliczać całej liczby, aby znać kilka ostatnich cyfr. Wystarczy po każdym kroku brać modulo z wyniku do następnych obliczeń.
-
- Użytkownik
- Posty: 5101
- Rejestracja: 11 mar 2011, o 16:31
- Płeć: Mężczyzna
- Lokalizacja: 52°16'37''N 20°52'45''E
- Podziękował: 4 razy
- Pomógł: 1001 razy
[Excel] Wyliczanie dużych, dokładnych liczb
johny1614 pisze:Chodzi mi o coś typu:
\(\displaystyle{ 412098412304982999 -> 82999}\)
=MOD(412098412304982999,100000)
?Nie zmienia to faktu, że zmienne mają ograniczone rozmiary.Medea 2 pisze:Z tego co wiem, to w Excelu można pisać makra, nie myślałeś o tym?
Integer
jest \(\displaystyle{ 16}\)-bitowy, Long
jest \(\displaystyle{ 32}\)-bitowy. Typ Decimal
pozwala reprezentować trochę dłuższe liczby, ale nie aż tak.-
- Użytkownik
- Posty: 1707
- Rejestracja: 8 cze 2010, o 13:09
- Płeć: Mężczyzna
- Podziękował: 1 raz
- Pomógł: 412 razy
[Excel] Wyliczanie dużych, dokładnych liczb
Kod: Zaznacz cały
http://www.tushar-mehta.com/misc_tutorials/project_euler/LargeNumberArithmetic.htm
Kod: Zaznacz cały
http://www.precisioncalc.com/xlprecision.html
-
- Użytkownik
- Posty: 18
- Rejestracja: 27 paź 2009, o 17:36
- Płeć: Mężczyzna
- Lokalizacja: Zgierz
- Podziękował: 1 raz
[Excel] Wyliczanie dużych, dokładnych liczb
Robieniem makr jak najbardziej, ale pisania w vb raczej chce uniknąć.
Nie wpadłem na funkcję modulo. Niestety ona może się nie przydać, bo wylicza tylko dla pewnych wartości. Jak liczba daleko odbiega od dzielnika to wyświetla błąd. Definiując \(\displaystyle{ mod \left( n,d \right) =n-d \cdot \left( \frac{n}{d} \right)}\). Przy czym \(\displaystyle{ \left( \frac{n}{d} \right)}\) to podłoga z \(\displaystyle{ \frac{n}{d}}\) Mam błąd już przy 22!. Wcześniej liczy dobrze. Nie wiem czemu tak jest, ale mam jeszcze sporo czasu na zastanawianie się nad tym.
Wielkie dzięki za wszystkie posty, jestem dobrej myśli, że uda się policzyć te szatańskie liczby .
Nie wpadłem na funkcję modulo. Niestety ona może się nie przydać, bo wylicza tylko dla pewnych wartości. Jak liczba daleko odbiega od dzielnika to wyświetla błąd. Definiując \(\displaystyle{ mod \left( n,d \right) =n-d \cdot \left( \frac{n}{d} \right)}\). Przy czym \(\displaystyle{ \left( \frac{n}{d} \right)}\) to podłoga z \(\displaystyle{ \frac{n}{d}}\) Mam błąd już przy 22!. Wcześniej liczy dobrze. Nie wiem czemu tak jest, ale mam jeszcze sporo czasu na zastanawianie się nad tym.
Wielkie dzięki za wszystkie posty, jestem dobrej myśli, że uda się policzyć te szatańskie liczby .
Ostatnio zmieniony 7 gru 2014, o 21:46 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 65
- Rejestracja: 4 mar 2014, o 00:32
- Płeć: Mężczyzna
- Lokalizacja: VBATools | Kraków | Poland | Europe | Earth | SolSystem | SomewareInSpace
- Podziękował: 1 raz
- Pomógł: 7 razy
[Excel] Wyliczanie dużych, dokładnych liczb
O podobny problem natknąłem się podczas projektowania dodatku do numerów seryjnych, które to często są dość długie, albo wymagają iteracji z usunięciem wartości tekstowej.
W Excelu o ile chcesz zapisać tak wielka cyfrę w komórce musisz zmienić formatowanie na text ponieważ przy ogólnym zamieniana jest na miarę naukową, a przy liczbowym pomijane są wartości po 15 znaku liczby (reszta jest wypełniona zerami).
Oto przykład (o ile modek tego nie uwali) Oczywiście numer misi być obliczony albo jako LongLong w Excelu x64, albo partiami jak to jest realizowane w x86 (32bity).
Dobrą zasadą jest odcięcie 1 znak + długość iteracji, a resztę potraktować jako string.
W Excelu o ile chcesz zapisać tak wielka cyfrę w komórce musisz zmienić formatowanie na text ponieważ przy ogólnym zamieniana jest na miarę naukową, a przy liczbowym pomijane są wartości po 15 znaku liczby (reszta jest wypełniona zerami).
Oto przykład (o ile modek tego nie uwali) Oczywiście numer misi być obliczony albo jako LongLong w Excelu x64, albo partiami jak to jest realizowane w x86 (32bity).
Dobrą zasadą jest odcięcie 1 znak + długość iteracji, a resztę potraktować jako string.
- Medea 2
- Użytkownik
- Posty: 2491
- Rejestracja: 30 lis 2014, o 11:03
- Płeć: Kobieta
- Podziękował: 23 razy
- Pomógł: 479 razy
[Excel] Wyliczanie dużych, dokładnych liczb
Wielką liczbę, nie cyfrę... Poza tym, jeśli trzymasz liczby jako tekst, to nie możesz wykonywać na nich operacji arytmetycznych, więc to nie jest dobre rozwiązanie.
-
- Użytkownik
- Posty: 65
- Rejestracja: 4 mar 2014, o 00:32
- Płeć: Mężczyzna
- Lokalizacja: VBATools | Kraków | Poland | Europe | Earth | SolSystem | SomewareInSpace
- Podziękował: 1 raz
- Pomógł: 7 razy
[Excel] Wyliczanie dużych, dokładnych liczb
Medea 2, nie da się przetworzyć w Excelu wielkich liczb, ponieważ jest to ograniczone przez automatyzacje. Po drugie zawsze dane które mamy zapisane jako tekst możemy transformować na wartość/liczbę i obliczyć np w VBA.
Pow opisane rozwiązanie sprowadzone analogicznie do tego problemu działa i jego opis jest na mojej stronie internetowej.
Pow opisane rozwiązanie sprowadzone analogicznie do tego problemu działa i jego opis jest na mojej stronie internetowej.