Starając się problem znalezienia pierwszych k cyfr z num^num pisałem ten sam program w C++ i PythonC++ vs precyzją Python
C++
long double intpart,num,f_digit,k;
cin>>num>>k;
f_digit= pow(10.0,modf(num*log10(num),&intpart)+k-1);
cout<<f_digit;
Python
(a,b) = modf(num*log10(num))
f_digits = pow(10,b+k-1)
print f_digits
Wejście
19423474 9
O utput
C++ > 163074912
Python > 163074908
Sprawdziłem, czy rozwiązanie C++ jest dokładne. Sprawdzono pod adresem http://www.wolframalpha.com/input/?i=19423474&19423474
Każdy pomysł, w jaki sposób uzyskać tę samą precyzję w Pythonie?
EDYCJA: Wiem o pakietach zewnętrznych bibliotek, aby uzyskać tę dokładność, ale jakiekolwiek rozwiązanie NATIVE ???
To ciekawe, że oni w ogóle inna, ponieważ można by pomyśleć, że są one zarówno przy użyciu tego samego podstawowego biblioteki matematycznej (math.h), te same podstawowe współpracownicy procesory, a tym samym bazowy IEEE 754 standard. Ale być może Python przepisał swoją własną wieżę numeryczną. –
Wolfram alpha mówi, że ostatnie kilka cyfr to 2826110976, co jest wynikiem ani twojego kodu C++, ani Pythona. –
@sharth: wymienia * pierwsze * kilka cyfr, a nie * ostatnie * kilka. –