Netlogo减少多项式的例子

时间:2016-06-18 16:31:01

标签: netlogo reduce

在“减少”的Netlogo词典中,它们显示了一个带有“+”运算符的示例

reduce [?1 + ?2] [1 2 3 4] 

它们相当于(((1 + 2)+ 3)+ 4)。

后来他们举了这个例子:

;; evaluate the polynomial, with given coefficients, at x
to-report evaluate-polynomial [coefficients x]
  report reduce [(x * ?1) + ?2] coefficients
end

;; evaluate 3x^2 + 2x + 1 at x = 4
show evaluate-polynomial [3 2 1] 4
=> 57

该评估的等效扩展(使用括号)是什么?

1 个答案:

答案 0 :(得分:2)

observer> show (4 * ((4 * 3) + 2)) + 1
observer: 57

理解它的关键是一步一步地去做。 reduce首先获取列表的前两个元素并将其插入?1?2,所以

(x * ?1) + ?2

变为

(x * 3) + 2

然后整个表达式变为?1,列表的最后一个元素1变为?2。再次替换初始表达式中的?1?2,我们得到:

(x * ((x * 3) + 2)) + 1

剩下的就是用x替换4

(4 * ((4 * 3) + 2)) + 1