计数器和累加器之间有什么区别?

时间:2012-10-19 22:02:16

标签: c++ counter accumulator

我不确定区别是什么,但问题出在这里。

编写一个赋值语句,将名为numStudents的计数器变量更新为1。 它会是:

  

numStudents = numStudents + 1

? 我的另一个问题是

编写一个赋值语句,用于通过sales变量中的值更新名为total的累加器变量。 会不会像:

  

总计=总计+销售额

3 个答案:

答案 0 :(得分:6)

对你的问题没有单一,明确,明确的答案。

可以说计数器是每次验证给定事件时递增的变量(例如,当迭代数组时,每次遇到数字5时,你都可以增加一个计数器1)。

这个概念可能会被推广,因为在每一步都有计数器增加2,或3,或任何你想要的值;但是,如果步骤并不总是相同的话,计数器的语义通常会失去意义。这取决于您的计划的逻辑,最后:如果您要跟踪酒店中的单人间和双人间,您的numGuests计数器可以按1和{{1}的步长递增取决于您在特定时刻处理的房间,但可以说最后这只是为了清晰或简洁,因为结果与2递增两次相同!

累加器是一个变量,例如,存储数组元素的总和(即,您没有固定的步骤,但增量根据您的元素而变化遭遇)。

可以对项目列表进行概括,将给定函数1重复应用于累加器的实际值和列表的下一项,将结果保存在累加器中。通过这种方式,我们获得了fold high-order function的语义(其中一个名称实际上是 accumulate )。如果我们将分析限制为所谓的左侧折叠,则累加器会随时存储中间结果,对您已处理的子集有效。

如果您有一个名为f的累加器,其起始值为total,且数组中包含一年中12个月的销售额,请将此定义应用于0(另外)作为我们的+,将在 n 步骤中为您提供一年中第一个 n 月的销售额。

您的示例看起来很好,因为它们严格遵守累加器和计数器的这些定义。

答案 1 :(得分:4)

“counter”和“accumulator”对不同的人意味着不同的东西。只有你的教授可以说,他们对你的教授意味着什么。

那就是说,当有人提到一个柜台时他们的意思是“计算有多少东西[符合这些标准]”。

另一方面,通常当人们说你应该积累某些东西时,他们的意思是“将所有这些东西的总价值加起来[符合这些标准]”

这是一个例子。假设你有一系列学生,那些学生有年龄:

{16, 17, 16, 19}

计算17岁或以上的学生人数?答案是2。 累计17岁或以上学生的总年龄?答案是19 + 16 = 35。

答案 2 :(得分:2)

根据我的经验,程序员使用“计数器”来表示一次计算一个事物的东西,或者偶尔一次固定的间隔。同样不一定适用于“累加器”,虽然这并不是说一次只计算一件事情不是累加器。