问题标签 [accumulator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
297 浏览

database - Prolog - 帮助修复规则

我有一个充满事实的数据库,例如:

例如:newcrossgate 到布罗克利需要 2 分钟。

然后我创建了一个规则,这样如果我输入查询 istime(newcrossgate,honoroakpark,Z)。那么prolog应该给我在这两个站之间旅行的时间。(我制定的规则旨在计算任何两个站点之间的距离,而不仅仅是相邻站点)。

它似乎非常适合 newcrossgate 到前几个车站,例如 newcrossgate 到 Foresthill 或 sydenham。然而,在测试 newcrossgate 到 westcroydon 需要 26 分钟之后,我尝试了 newcrossgate 到水晶宫,prolog 说它应该需要 15 分钟......尽管事实上它是 westcroydon 之后的下一站。显然这里出了点问题,但是它适用于大多数车站,但时不时地偶尔会出现错误,谁能告诉我有什么问题吗?:S

0 投票
1 回答
3348 浏览

prolog - Prolog什么是累加器和\ +成员函数

我一直在寻找关于什么是累加器以及它们的作用的教程,但是所有的解释似乎都非常复杂,并没有真正让我足够清楚地了解它们是如何工作的,以便我可以使用它。我似乎理解累加器会保留诸如数字之类的东西,然后可以被其他代码调用并更改。问题是虽然我了解什么是蓄能器并且知道何时需要它,但我不太确定如何实际使用它。

我的意思是从我看过的教程中,有时累加器似乎是一个空列表,而其他时候它似乎是“0”,这让我想知道究竟什么可以被认为是累加器,什么不能。有人可以简单地向我解释一下如何使用蓄电池吗?

同样对于我问题的第二部分,我似乎注意到人们在他们的序言代码中使用了很多:

我已经设法推断出它与列表有关,因为我总是看到它被用在对列表执行某些操作的代码行中,但是在四处搜索后我发现\+member实际上的意思是“否定为失败 - 不是可证明的”虽然我真的不明白这意味着什么,或者即使那个人是正确的。再次,有人可以向我解释一下究竟\+member是什么以及它可以用来做什么,同时试图保持你的解释简单,大词让我感到困惑。

0 投票
3 回答
1911 浏览

recursion - 方案/球拍最佳实践 - 递归与变量累加

我是Scheme(通过Racket)和(在较小程度上)函数式编程的新手,并且可以就通过变量与递归进行累积的利弊提出一些建议。出于本示例的目的,我正在尝试计算移动平均线。所以,对于一个列表'(1 2 3 4 5),3 个周期的移动平均线是'(1 2 2 3 4)。这个想法是,周期之前的任何数字还不是计算的一部分,一旦我们达到集合中的周期长度,我们就开始根据所选周期对列表的子集进行平均。

所以,我的第一次尝试看起来像这样:

这行得通。我喜欢使用地图。它似乎是可组合的并且可以重构。我可以看到将来有像这样的表亲:

等等

但是,这不符合 Scheme 的精神(对吗?),因为我正在积累副作用。所以我把它改写成这样:

现在,乍一看,这个版本更难理解。所以我有几个问题:

  1. 有没有更优雅的方式来使用球拍的一些内置迭代结构(如for/fold)来表达递归版本?它甚至是书面的尾递归吗?

  2. 有没有办法在不使用累加器变量的情况下编写第一个版本?

  3. 这种类型的问题是一个更大的模式的一部分,其中有公认的最佳实践,尤其是在 Scheme 中?

0 投票
1 回答
397 浏览

actionscript-3 - 在 AS3 中累积分数

0 投票
1 回答
1406 浏览

cuda - 嵌套循环中数组的二维累积和——CUDA实现?

我一直在考虑如何使用归约在 CUDA 上执行此操作,但我对如何完成它有点茫然。C代码如下。要记住的重要部分——变量precalculatedValue取决于两个循环迭代器。此外,变量ngo对m的每个值都不是唯一的……例如m = 0,1,2 可能有ngo = 1,而m = 4,5,6,7,8 可能有ngo = 2,等等。我已经包含了循环迭代器的大小,以防它有助于提供更好的实现建议。

在之前的案例中,当precalculatedValue只是内部循环变量的函数时,我将值保存在唯一的数组索引中,并在事后通过并行归约(推力)添加它们。但是,这种情况让我很困惑:m的值并没有唯一地映射到ngo的值。因此,我看不出有一种方法可以使此代码高效(甚至可行)以使用减少。任何想法都是最受欢迎的。

0 投票
2 回答
663 浏览

vb.net - 我的累加器 For... Next 循环在 VB 中跳过数字;视觉工作室 2010。

我正在尝试编写一个 For... Next 循环,该循环将允许 12 个条目或取消按钮。
不知何故,intEntries 只使用了 1、3、5、7、9 和 11。完成后,计算被除以 13,而不是 12。我不确定我错了什么,但它是显然是什么。非常感谢您能给我的任何帮助!

0 投票
3 回答
18211 浏览

java - 使用 for 循环遍历对象和方法列表

完整的代码可以在这篇文章的底部找到,但我真正关心的唯一部分是,

理想情况下,totesPrice、totesSize 和 totesSpeed 将是存储在 photoes 列表数组中的对象的 get 方法的总和。

0 投票
5 回答
3080 浏览

recursion - 累加器、conj 和递归

我已经从 4clojure.com 解决了 45 个问题,并且在尝试使用递归和累加器解决一些问题的过程中发现了一个反复出现的问题。

我将尽我所能解释我正在做的最好的事情,以最终得到令人毛骨悚然的解决方案,希望一些 Clojurers 会“得到”我没有得到的东西。

例如,问题 34 要求编写一个以两个整数作为参数的函数(不使用range)并创建一个范围(不使用 range )。简单地说,你做 (... 1 7) 你得到 (1 2 3 4 5 6)。

现在这个问题不是关于解决这个特定问题。

如果我使用递归和累加器解决这个问题怎么办?

我的思考过程是这样的:

  • 我需要编写一个带有两个参数的函数,我从(fn [xy] )开始

  • 我需要递归,我需要跟踪一个列表,我将使用一个累加器,所以我在第一个函数中编写了第二个函数,并接受一个额外的参数:

    (fn [xy]
    ((fn g [xy acc] ...) x y '())

(显然我无法在 SO 上正确格式化 Clojure 代码!?)

在这里我已经不确定我做对了:第一个函数必须正好有两个整数参数(不是我的调用),我不确定:如果我想使用累加器,我可以使用累加器而不创建嵌套函数?

然后我想conj,但我不能这样做:

所以我做了一些奇怪的事情来确保我首先有一个序列,我最终得到了这个:

但是这会产生这个:

而不是这个:

所以我最终做了一个额外的展平,它可以工作,但它非常难看。

我开始理解一些事情,在某些情况下,我什至开始以一种更流行的方式“思考”,但我在编写解决方案时遇到了问题。

例如在这里我决定:

  • 使用蓄能器
  • 通过递增x直到达到y来递归

但我最终得到了上面的怪物。

很多方法可以解决这个问题,再一次,这不是我所追求的。

我所追求的是,​​在我决定 cons/conj、使用累加器和递归之后,我可以得到这个(不是我写的):

而不是这个:

我认为这是能够解决一些问题的开始,但我对我倾向于产生的丑陋解决方案有点失望......

0 投票
3 回答
134 浏览

prolog - prolog deleteall 不起作用

我试图找出问题,但没有成功 你能告诉我哪里出了问题吗?

0 投票
6 回答
1839 浏览

clojure - 在 (reduce f val coll) 中,val 是累加器吗?

当你调用reduce并传递一个函数和两个参数时,第一个参数可以被认为是一个累加器吗?

总是一个累加器吗?

有时是累加器吗?

我正在阅读一篇关于使用 Clojure 解析大文件的博客文章,发现这一行:

链接到博客条目:

http://lethain.com/reading-file-in-clojure/

一个简单的:(reduce + [1 2 3])怎么样?有没有累加器?

我认为我的问题是:“究竟什么是蓄能器?”

但我仍然想了解累加器和reduce函数之间的关系。因此,欢迎对这些特定(相关)问题的任何回答!