如何将开放形式的重复转换为等效的闭合形式。 此外,有些常用的封闭形式是什么 通常有效使用。
答案 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中找到一些示例。重要的是要意识到不是所有的递归关系都可以解决,但事实上,大多数都无法解决(这就是编程很重要的原因!)