Strona 1 z 1
suma n cyfr po przecinku pierwiastka z m
: 20 kwie 2022, o 19:32
autor: Corvette653
Witam wszystkich.
Jak w tytule, zmagam się z zadaniem wyznaczenia sumy \(\displaystyle{ n}\) kolejnych cyfr po przecinku rozwinięcia dziesiętnego liczby \(\displaystyle{ \sqrt{m} }\).
Jest to 3 zadanie z konkursu "O Diamentowy Indeks AGH 2018/19".
Będę wdzięczny za wszelkie podpowiedzi jak do tego podejść - problem gubienia dokładności w C++ wydaje mi się nie do obejścia
Re: suma n cyfr po przecinku pierwiastka z m
: 20 kwie 2022, o 22:36
autor: Dasio11
Wystarczy spierwiastkować
\(\displaystyle{ m}\) pisemnie (na przykład
tak) i zsumować cyfry.
Re: suma n cyfr po przecinku pierwiastka z m
: 21 kwie 2022, o 18:28
autor: Corvette653
Załóżmy że musimy obliczyć 100 cyfr po przecinku liczby \(\displaystyle{ \sqrt{2} }\) i mamy ich już 99.
Nazwijmy upragnioną cyfrę \(\displaystyle{ x}\).
Korzystając z wymienionego wyżej algorytmu:
\(\displaystyle{ c \ge (20p + x) \cdot x}\)
wszystko super, tyle że \(\displaystyle{ p = \sqrt{2} \cdot 10 ^{99} }\)
Zarówno \(\displaystyle{ c}\), jak i \(\displaystyle{ p}\) są o wiele za duże żeby przechować je w jakiejkolwiek zmiennej liczbowej.
Nie istnieje żaden sposób wyznaczania pierwiastka, który pozwalałby "zapomnieć" wcześniejsze cyfry, lub przynajmniej je skompresować?
Ps.: Można zapisać te liczby jako string i wykonywać wszystkie operacje matematyczne ręcznie ale mam nadzieje że istnieje prostsze rozwiązanie.
Re: suma n cyfr po przecinku pierwiastka z m
: 22 kwie 2022, o 12:13
autor: Ponury123
A czy autorzy raczyli podać jakieś ograniczenia? Bo równie dobrze można przyjąć, że
\(\displaystyle{ n= 10^{10 ^{10 ^{...} } } }\) i wtedy to już w ogóle mamy problem

Jeśli natkniesz się na rozwiązanie akceptowalne przez autorów to wrzuć tu proszę, jestem ciekaw co sobie tam założyli.
Re: suma n cyfr po przecinku pierwiastka z m
: 22 kwie 2022, o 15:06
autor: Corvette653
\(\displaystyle{ 1 \le m \le 10 ^{8} }\)
\(\displaystyle{ 1 \le n < 100}\)
czyli suma maksymalnie 99 cyfr po przecinku
Re: suma n cyfr po przecinku pierwiastka z m
: 23 kwie 2022, o 11:39
autor: Ponury123
No to nie jest tak źle, nie podałeś innych ograniczeń co do kodu więc najwygodniej będzie Ci chyba wykorzystać tę bibliotekę
Re: suma n cyfr po przecinku pierwiastka z m
: 23 kwie 2022, o 16:34
autor: Dasio11
Corvette653 pisze: 21 kwie 2022, o 18:28Nie istnieje żaden sposób wyznaczania pierwiastka, który pozwalałby "zapomnieć" wcześniejsze cyfry, lub przynajmniej je skompresować?
Nie znam takiego - miałem na myśli algorytm działający na trzymanych w tablicy liczbach stucyfrowych z ręcznie zaprogramowanymi operacjami arytmetycznymi, bo w końcu jest to zadanie konkursowe. Gdyby wystarczyło używać typów wbudowanych, problem stałby się trywialny.