Witam. Otóż kombinuję nad rozwiązaniem takiego oto zadania:
Wyznacz stosunkowo dobre przybliżenie liczby \(\displaystyle{ \sqrt[1000]{1000!}}\) - możesz
założyć, ze arytmetyka liczb typu double zapewni Ci odpowiednia dokładność.
Jednak nie mam pomysłu na taki program. Z góry dziękuję za pomoc
[C] Przybliżenie liczby
- Szemek
- Użytkownik
- Posty: 4819
- Rejestracja: 10 paź 2006, o 23:03
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 43 razy
- Pomógł: 1407 razy
[C] Przybliżenie liczby
Zauważ, że:
\(\displaystyle{ \sqrt[1000]{1000!} = \sqrt[1000]{1} \cdot \sqrt[1000]{2} \cdot \ldots \sqrt[1000]{1000}}\)
\(\displaystyle{ \sqrt[1000]{n} = n^{0.001}}\)
\(\displaystyle{ \sqrt[1000]{1000!} = \sqrt[1000]{1} \cdot \sqrt[1000]{2} \cdot \ldots \sqrt[1000]{1000}}\)
\(\displaystyle{ \sqrt[1000]{n} = n^{0.001}}\)
-
- Użytkownik
- Posty: 66
- Rejestracja: 23 kwie 2009, o 14:00
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 10 razy
- Pomógł: 4 razy
[C] Przybliżenie liczby
Napisałem do tej odpowiedzi taki oto program, mam nadzieję, że wynik jest dobry Wychodzi 369,491663.
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
double i;
double suma=1;
for(i=1;i<=1000;i++)
{
suma*=pow(i,0.001);
}
printf("Pierwiastek tysiecznego stopnia z "tysiac slnia" wynosi: %f
",suma);
system("pause");
return 0;
}
- Amon-Ra
- Użytkownik
- Posty: 882
- Rejestracja: 16 lis 2005, o 16:51
- Płeć: Mężczyzna
- Lokalizacja: Tczew
- Pomógł: 175 razy
[C] Przybliżenie liczby
No nic dziwnego, skoro de facto zrobiłeś nic innego (pomijając błędy obliczeniowe wynikające ze skończonej dokładności zapisu zmiennoprzecinkowego), jak obliczenie silni z liczby naturalnej i skorzystanie z funkcji bibliotecznej. Gdzie tu zatem "odpowiednio dobre przybliżenie"? U mnie by to nie przeszło.
Zainteresuj się wzorem Stirlinga \(\displaystyle{ \ln{n!}\approx n\ln{n}-n}\).
Zainteresuj się wzorem Stirlinga \(\displaystyle{ \ln{n!}\approx n\ln{n}-n}\).