2017-09-15 43 views
-6

我有一個西格瑪例如:解決西格瑪例如

Sigma Example

而且我沒有任何想法如何解決這個問題。你能幫我解碼嗎?

(代碼帕斯卡,Java或C++)

+3

如果您不明白數學語法,那麼您就是在錯誤的網站上詢問這個問題。如果你理解語法,你有什麼具體問題將其轉換爲代碼?你想用什麼語言編寫代碼? – Dukeling

+0

C++或Java。這沒關係 – VENTO

+0

這些是總結。你會爲20個外部金額中的每一個做30次。 – duffymo

回答

1

擴大內部來看,你會得到m^3 - 3m^2n + 3mn^2 - n^3,其產生的m^5-3m^4n3m^3n^2-m^2n^3雙總和。這些總和是可分的,這意味着它們是mm的總和與n的總和n的乘積。

您可以通過Faulhaber formulas評估這些總和達到五級,這是多項式表達式。通過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); 

使用求和的明顯的方法,內循環將評估的差異30立方體,共計60加法和60乘法,和外循環將重複這個20倍,額外乘法和加法,共計1220 +1240 *

比較於上述的方法,執行在總18 +30 *7師(獨立的mn的數值)。

+0

謝謝。我試過這個: 'int main(){' \t int result = 0; (int m = 1; m <= 20; m ++){ \t \t \t int temp = 0; \t \t對(INT N = 1; N <= 30;在n ++){ \t \t \t溫度+ = POW((M - N),3); \t \t} \t \t result + = pow(m,2)* temp; \t} \t cout << result; \t return 0; }' – VENTO

+0

@VENTO:謝謝你告訴我你忽視了我的答案。 –