2017-06-08 1 views
-2

J'ai donc essayé d'utiliser BigDecimal qui me donne la valeur du nombre d'Euler jusqu'à 50 décimales. Mais puisque la valeur de contrainte est aussi élevée, le nombre peut aller de 1 à 10^6000, et par conséquent je n'obtiens aucune précision (le rendre optimal est un autre problème). Voici le bloc de code:est-il possible d'obtenir la somme du produit du nombre d'euler et d'un entier, où l'entier peut aller jusqu'à 10^6000?

for(int i=1; i<n+1; i++){ 
// i is the integer value and bd is the value of the euler's number, so below i am multiplying the value of i with the euler's number 
BigDecimal x = BigDecimal.valueOf(i).multiply(bd); 
//Here i am taking floor of the above calculated value 
x.setScale(0, RoundingMode.HALF_UP); 
//and here sum is floor[1*euler's no] + floor[2*euler's number] + ... + floor[n*euler's number] 
sum += x.intValue(); 
} 
+1

Qu'est-ce que «somme»? Vous pourriez aussi avoir besoin de faire un BigDecimal. – lucasvw

+2

L'extrait de code suggère que vous voulez résumer 10^6000 numéros: bonne chance avec cela. – Henry

+0

Je voulais d'abord suggérer d'utiliser la formule '(n * (n + 1)/2)' et de le multiplier avec bd * une fois *, puis de tronquer, mais cela ne tenait pas compte du fait que vous deviez ajouter le sol valeurs, donc 1 * e deviendrait 2, 2 * e deviendrait 5, donnant un sous-total de 7, etc. tandis que 3 * e deviendrait 8, donnant déjà une erreur de 1. Tu devras boucler, j'ai peur. –

Répondre

0

Je pense que vous demandez comment calculer le nombre d'Euler (à savoir e) à une plus grande précision.

La réponse serait de mettre en œuvre un algorithme qui converge rapidement. Avec un peu de recherche, j'ai trouvé cette page au "Calculating the Value of e". En bas, il décrit Brothers Formula:

e =​ Sum(n=0, n=​∞​​​, (2n+2)​​/(2n+1)!​​) 

qui converge très rapidement. Vous pouvez coder cela en Java en utilisant BigDecimal pour calculer la précision dont vous avez besoin.

Voir aussi:

qui (si je l'ai bien compris!) Donne une formule plus compliquée qui converge encore plus rapidement.

+0

Vous avez bien compris. Le lien vers le pdf est très précieux, merci. J'ai cherché quelque chose comme ça, et il n'y a pas grand chose (ou du moins pas beaucoup que je pourrais lire et suivre) sur ce sujet .. –