1

当你在循环或嵌套循环中有循环时,让我们说 for-loop,不管编程语言是什么(当然必须是命令式的)

for(int j = 1; j <= 100; j++){
  for(int k = 1; k <= 200; k++){
   \\body or terms
  }
}

是数学等价物,当我想将 i = 1 与所有 j = {1, 200} 和 i = 2 与所有 j = {1, 200} 相加时,依此类推:

在此处输入图像描述

而且红圈的条件是不必要的,对吧?

这同样适用于多个嵌套循环?

4

2 回答 2

3

您提供的代码将按照您的说明运行

将 i = 1 与所有 j = {1, 200} 和 i = 2 与所有 j = {1, 200} 相加,依此类推

但是,数学等价物没有红色标记的条件。

带有条件的 sigmas等效于以下代码:

for(int j = 1; j <= 100; j++){
  for(int k = 1; k < j; k++){
   \\body or terms
  }
}

希望我有所帮助。

于 2015-05-07T21:24:48.553 回答
1

Sigma 代表求和,这意味着如果您正在处理一个范围的 sigma,i=1,n定义为x,那么结果将是 x * n (x + x + x + ... + x n次)。转录为伪代码,它会是这样的:

result = 0
for i=1,n:
     result = result + x

所以它并没有真正转化为一般for循环,它更多地是关于doing某个次数或次数的事情,或者直到满足某个条件。

通常,当您看到数学家研究与软件领域直接相关的算法时,他们使用更灵活的函数符号和递归比求和更多,因为这种函数符号实际上比求和更直接地转换为一般循环计算。

于 2015-05-07T21:38:52.263 回答