2017-09-15 5 views
-6

J'ai un exemple sigma:Résoudre exemple sigma

Sigma Example

Et je n'ai aucune idée comment le résoudre. Pouvez-vous m'aider avec le code, s'il vous plaît?

(Code pascals, java ou C++)

+3

Si vous ne comprenez pas la syntaxe mathématique, vous êtes sur le mauvais site pour poser des questions à ce sujet. Si vous comprenez la syntaxe, quel est le problème spécifique que vous avez de convertir cela en code? Dans quelle langue essayez-vous d'écrire ce code? – Dukeling

+0

C++ ou Java. Peu importe – VENTO

+0

Ce sont des sommations. Tu feras l'intérieur 30 fois pour chacune des 20 sommes extérieures. – duffymo

Répondre

1

L'expansion du terme intérieur, vous obtenez m^3 - 3m^2n + 3mn^2 - n^3, ce qui donne une double sommation de m^5, -3m^4n, 3m^3n^2 et -m^2n^3. Ces sommations sont séparables, ce qui signifie qu'elles sont le produit d'une somme sur m d'une puissance de m et d'une somme sur n d'une puissance de n.

Vous pouvez évaluer ces sommes au moyen du Faulhaber formulas jusqu'au degré cinq, qui sont des expressions polynomiales. Évaluez-les par Horner's method.

int F1(int n) { return (n + 1) * n/2; } 
int F2(int n) { return ((2 * n + 3) * n + 1) * n/6; } 
int F3(int n) { return ((n + 2) * n + 1) * n * n/4; } 
... 

int S= F5(20) * 30 - 3 * F4(20) * F1(30) + 3 * F3(20) * F2(30) - F2(20) * F3(30); 

En utilisant la méthode évidente de sommation, la boucle interne évaluera 30 cubes d'une différence, pour un total de 60 additions et 60 multiplications, et la boucle extérieure répétera cette 20 fois, avec supplémentaire multiplications et additions, pour un total de 1220 + et 1240 *.

comparer à la méthode ci-dessus, d'effectuer 18 +, 30 * et 7 divisions au total (indépendamment des valeurs de m et n).

+0

Merci. J'ai essayé ceci: 'int main() {' \t int résultat = 0; Pour (int m = 1; m <= 20; m + +) \t \t \t \t for (int n = 1; n <= 30; n ++) { \t \t \t température + = pow ((m - n), 3); \t \t} \t \t résultat + = pow (m, 2) * temp; \t} \t cout << résultat; \t return 0; } ' – VENTO

+0

@VENTO: merci de m'avoir informé que vous n'aviez pas tenu compte de ma réponse. –