Provare un problema di trovare le prime cifre k di un num^num ho scritto lo stesso programma in C++ e PythonC++ vs Python precisione
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
Ingresso
19423474 9
O scita
C++ > 163074912
Python > 163074908
ho controllato i risultati della soluzione C++ è quella accurata. controllato a http://www.wolframalpha.com/input/?i=19423474^19423474
Qualsiasi idea di come posso ottenere la stessa precisione in Python ???
EDIT: Conosco i pacchetti di librerie esterne per ottenere questa precisione ma qualsiasi soluzione NATIVE ???
E 'curioso che sono diversi a tutti, dal momento che si potrebbe pensare che sono entrambi utilizzando la stessa libreria di base di matematica (math.h), gli stessi sottostanti co-processori, e lo stesso sottostante IEEE 754 standard. Ma forse il pitone ha riscritto la propria torre numerica. –
Wolfram alpha dice che le ultime cifre sono 2826110976, che non sono né il codice C++ né il codice Python. –
@sharth: elenca le * prime * poche cifre, non le * ultime * poche. –