我有本書說我不明白西格瑪符號和循環
,並說,這相當於說
for(i = 1; i <= N; i++)
Sum += i;
,並進一步說,利用這種簡單的公式,
因爲(最大值 - 最小值+ 1)
,它說這個變化到C代碼將是
for(k = j; k <= 1; k++)
Sum += k;
不過,我認真無法理解這樣的!任何人都可以向我解釋這個嗎?
非常感謝您
我有本書說我不明白西格瑪符號和循環
,並說,這相當於說
for(i = 1; i <= N; i++)
Sum += i;
,並進一步說,利用這種簡單的公式,
因爲(最大值 - 最小值+ 1)
,它說這個變化到C代碼將是
for(k = j; k <= 1; k++)
Sum += k;
不過,我認真無法理解這樣的!任何人都可以向我解釋這個嗎?
非常感謝您
關於第二筆金額,它開始於k=j
並結束於i
。該總和不等於(j - i - 1)
,相反,它等於(i - j + 1)
。我們來舉個例子:
如果j = 3
和i = 6
,那麼k = 3
和sum = 1+1+1+1 = 4
。通過應用公式:sum = (i - j + 1) = 6 - 3 + 1 = 4
。現在
,對於第一示例中的C代碼,他們說:
爲(I = 1;我< = N;我++) 薩姆+ = I;
這是錯誤的。取而代之的是,它應該是:
for(i = 1; i <= N; i++)
Sum += 1;
在第二個,他們說:
爲(K = j的; k < = 1; k ++) 薩姆+ = K;
相反,它應該是:
for(k = j; k <= i; k++)
Sum += 1; // Where i >= j
當然跟它的總和相當於
for (i = 1; i <= N; i++)
Sum += 1;
?
如果你不懂C代碼,那是因爲它的錯誤。
它必須在第一種情況下是1,而不是I的:
for(i = 1; i <= N; i++)
Sum += 1;
它必須是在1和1 I代替,而不是在第二方案K有:
for(k = j; k <= i; k++)
Sum += 1;
P.S.你也有配方本身mistypo。 1由於某種原因在Sigma之後被跳過。 j和i交換...
你在說什麼這本書?
看起來像書中只是說,對於給定的x
和y
for (int i = x; i <= y; ++i) Sum += 1;
類似於
,因此,更換x = 1
和y = N
,
for (int i = 1; i <= N; ++i) Sum += 1;
類似於
當然,這是你所期望的:從1
計數到N
的時候,你算一共有N
項目。更一般地說,從x
到y
時,您計數y - x + 1
項(+ 1
,因爲您包含了兩個邊界)。
我認爲,我們有侷限性,用於通過西格瑪符號計算For循環
例如
x=0
For i=2 to n-1 do
For j=i+1 To n-2 do
x=x+1
對於n = 5,我們有X = 1
但是當我由Sigma計算它
西格瑪設爲i = 2到n-1(Sigma公司J = + 1至n-2)=(N^2 -7 * N + 10)/ 2
如果我們用n = 5代替,那麼答案爲零,爲什麼?
我絕不是一個微積分大師,只是一個外行人,但也許外行的條款將有助於某人。再次,我不是大師,如果你發現錯誤,那麼大膽。無論如何,讓我們只需通過「循環」插件即可...
鑑於我們被告知這筆錢開始於上西格瑪的右手邊的數量,因此
第一次迭代,
總和= 1 + 1
第二次迭代,
2 + 2
第三次迭代
4 + 3
第四次迭代
7 + 4
一路上揚,直至極限情形下,你將有
SumBeforeLast + N
什麼是 「限?」在C中,你可以將它定義爲(i = 1; i < = N;)。在英語中,如果N是100,那麼極限將是「其中i = 100」。如果N = 5,則「極限」是「其中i = 5」等等。
如果你想成爲書呆子(你應該),你也可以說,限制有兩個部分,我的原始價值在「執行」的「開始」(Lambda微積分不涉及計算既不是時間也不是機器,但是一旦你瞭解概念,你總是可以剝離掉那個模型)是「下限」,而我的「最終值」是「上限」。
您想知道衍生品的「魔力」嗎?這很難解釋,但有時候,有時候,有時候,當N =無窮大或其他某個值時,有時又是有時候,如果代數以這樣的方式排列以致代數產生自我消除,我們剩下一個新的簡化的代數不再需要「無限」或「N次迭代」來達到一些想要的結果。找到這些「衍生物」是數學和算法發展的重要組成部分。換句話說,微積分的「魔力」只不過是產生像(x/x)* someEquation這樣的模式的Sigma操作,結合事實(例如(x/x))除以本身等於1,並且1乘以「someEquation」導致「someEquation」不變,這意味着等式的大部分不需要在某次迭代中計算Sigma運算。
請記住,如果我們丟棄x/x或者只是x,那麼所有的複雜度都會被丟棄,因爲它是離散的甚至是無限的,在這種情況下,全新的計算不僅可以優化,而且可以簡單地用我們的有限的硬件。
我幾乎沒有這方面的經驗,但據我所知,在算法設計中,衍生物被用來對算法進行優化,因爲它們從遞歸序列中提取複雜性。有時候,這些優化將無限複雜的問題帶入有限的領域,這使得它們可以被計算機解決,畢竟計算機具有有限的壽命和資源,因此僅限於有限或離散數學。
積分另一方面,雖然它增加了積分函數的複雜性,但在發現許多新算法時尤爲重要,特別是那些複雜度超出我們直覺和原始數學推理獨自發現的複雜度。
我創建了這個while循環詳細說明了sigma符號元素。
//Illustrates how loops are similar to Sigmas in Math
//This is equal to:
//100
//Sigma x+5
//x=1
package justscratch;
public class SigmaCalculatorWhileLoop {
private static int initial = 0; //Initial. Will increment by one until it reaches limit.
private static final int limit = 100; //Limit
private static final int incr = 5; //Number Incremental
private static int pass = 0; //Will illustrate the current pass
private static int tempAnswer = 0; //The previous sum
private static int finalAnswer = 0; //The current sum
public static void main(String[] args) {
while(pass<=limit) {
System.out.println("Pass: " + pass); //Prints out current Loop Pass
System.out.println(tempAnswer); //Prints out the sequences generated by each iteration from the "sigma"
tempAnswer = initial + incr; //Creates a new increased sequence until the limit is reached
finalAnswer = tempAnswer + finalAnswer; //Adds the previous sequence with the current sequence
pass++; //Increases the current pass
initial++; //The initial value will increase by 1 until it reaches it's limit
}
System.out.println("Sigma Answer: " + finalAnswer); //Prints the final sum of the "Sigma"
}
}
總之,這個程序將模擬Σ-100ΣN + 5 n = 0的。該應用程序通過生成基於西格瑪的先前和當前序列,並將這兩個當前序列一起添加到一起,直到達到西格瑪限制以計算由西格瑪返回的總數。所以序列{5 + 6 + 7 + 8 + 9 + 10,11 +。 。 。 。 105}將被完全添加。
歡迎來到StackOverflow!請記住,當您在答案中發佈任何代碼時,您應該對此進行描述,以便社區和提問者瞭解您發佈的內容。 –
嗨!我應該在主要方法中的代碼中添加註釋嗎? – chromechris
這取決於你。您可以在主要方法中添加註釋,也可以在代碼下添加文本說明。我會推薦第二個選項,因爲它可以提供更多的格式化工具,如粗體,斜體,引號等。 –
我不明白你寫的是什麼。創建你的公式[這裏](http://www.codecogs.com/latex/eqneditor.php)並粘貼鏈接/圖片 –
已更改!現在人們可以清楚地看到我想說的話 –
你是否用鉛筆和紙做過幾個小例子? –