开放式和封闭式

时间:2010-01-15 10:53:50

标签: algorithm math

如何将开放形式的重复转换为等效的闭合形式。 此外,有些常用的封闭形式是什么 通常有效使用。

2 个答案:

答案 0 :(得分:3)

我认为你在谈论递归函数和数学。

e.g。考虑以下和递归函数

sum(0) = 0
sum(i) = sum(i-1) + i

此表单未关闭。封闭形式为sum(n) = (n+1)*n/2,您只能使用+ - * /,power,有时甚至是factorial等基本操作。

对于您的问题,如何将开放式公式转换为封闭式。答案是没有一般规则将所有开放形式转换为封闭形式,因为某些开放形式没有等效的封闭形式。

您可以参考Concrete Mathematics对此主题进行认真对待。本书的主要目标是将一大类递归函数/开放表单转换为封闭形式。

答案 1 :(得分:2)

开放表格通常作为要解决的等式给出。例如,

a(0) = 1            -- base case
a(n) = b * a(n-1)   -- recurrence relation

要将其转换为已关闭的表单,您将解决重现关系。在这种情况下,重复替换直到达到基本情况为您提供

a(n) = b * a(n-1) = b * b + a(n-2) = ... = b * b * ... * b * a(0) = b^n

这更有效,因为可以在 n 中以对数时间计算功率(即与log n 成比例),而原始递归关系在名词的

有许多技术用于解决递归关系。可以在wikipedia article中找到一些示例。重要的是要意识到不是所有的递归关系都可以解决,但事实上,大多数都无法解决(这就是编程很重要的原因!)