重复关系据/h1>
一种据S.trong>递推关系据/strong>是一个使用据一种href="//www.parkandroid.com/wiki/recursion/" class="wiki_link" title="递归" target="_blank">递归据/a>为涉及在阵列的序列或元件而言。它是一种方式来定义在其本身而言的序列或阵列。递推关系在数学的许多领域的应用:据/p>
- 数论 -据一种href="//www.parkandroid.com/wiki/fibonacci-series/" class="wiki_link" title="斐波那契序列" target="_blank">斐波那契序列据/a>
- 组合学 -据一种href="//www.parkandroid.com/wiki/distinct-objects-into-identical-bins/" class="wiki_link" title="将物体分配到垃圾箱中" target="_blank">将物体分配到垃圾箱中据/a>
- 微积分-据一种href="//www.parkandroid.com/wiki/eulers-method/" class="wiki_link" title="欧拉法" target="_blank">欧拉法据/a>
- 还有很多据/a>。据/li>
递推关系被用来当一个详尽的解决问题的方法简直太艰苦是可行的。虽然它不是理想的计算在使用以前表示的时间序列中的一个条款,这种方法可以比详尽个案的替代更加高效。据/p>
有时,通过在其指数而不是序列中的先前术语方面定义序列的条款,可以“解决”复发关系。这给了一个据一种href="//www.parkandroid.com/wiki/closed-form-expressions/" class="wiki_link" title="闭式表达式" target="_blank">闭式表达式据/a>对于序列中的每个项,无需迭代过程来求解序列中的项。有几种方法可以实现这一点:据/p>
即使是这种形式的解决方案是不可能的,复发的关系仍然是有用的,因为它可以用来开发计算机据一种href="//www.parkandroid.com/wiki/algorithm/" class="wiki_link" title="算法" target="_blank">算法据/a>。当存储序列中的术语时,据一种href="//www.parkandroid.com/wiki/problem-solving-dynamic-programming/" class="wiki_link" title="动态编程" target="_blank">动态编程据/a>允许有效地计算序列中的新项。递归关系也适用于据一种href="//www.parkandroid.com/wiki/recursive-backtracking/" class="wiki_link" title="递归回溯" target="_blank">递归回溯据/a>,其中递归用于优化算法。据/p>
建立一次复发关系据/h2>
递推关系来减少复杂的问题,基于更简单版本的问题的一个迭代过程。在可以使用的这种方法的一个例子的问题是据S.trong>河内塔据/strong>令人费解的事据/p>
这据S.trong>河内塔据/strong>拼图由三个垂直的木钉和几个大小不同的圆盘组成。每个圆盘的中心都有一个孔,供销钉穿过。据/p>
这个拼图的规则如下:据/p>
让人不解的开始放在桩的一个所有磁盘。它们被放置在大的顺序最小的,从下到上。据/p>
拼图的目的是将所有的磁盘移动到另一个销钉上。据/p>
一次可以仅移动一个磁盘,并且磁盘总是放在钉子上。据/p>
盘只可移动到一个空的钉或到一个更大的磁盘。据/p>
让据S.pan class="katex">
它不是立即清除递归解决方案将针对此问题的工作。不过,也有对这个问题有两件事情,使其成为一个很好的候选人用递推关系来解决。据/p>
通过递归关系确定要解决的候选问题:据/strong>
- 这个问题可以简化为更简单的情况。拆除一些磁盘可以简化河内塔的拼图。据/li>
- 有一个数值,据S.pan class="katex"> ,以识别每个案例。对于河内塔拼图,此数值是磁盘数。据/li>
- 问题的复杂性增加了作为数字标识符增加。随着磁盘的汉诺塔问题数量的增加,它变得更加难以找到解决的办法。据!-- end-features -->
本练习的目标是开发一个递推关系据S.pan class="katex">
递推关系中的应用据/h2>
数论据/strong>
组合学据/strong>
结石据/strong>
计算机科学据/strong>
用生成函数求解递推关系据/h2>
主要文章:据一种href="//www.parkandroid.com/wiki/generating-functions-solving-recurrence-relations/" class="wiki_link" title="用生成函数求解递推关系" target="_blank">用生成函数求解递推关系据/a>
求解递推关系的一种方法是使用生成函数。据/p>
一种据S.trong>生成函数据/strong>是一个据一种href="//www.parkandroid.com/wiki/summation/" class="wiki_link" title="幂级数" target="_blank">幂级数据/a>其系数对应于数字序列中的项。据/p>
Fibonacci序列的产生功能是什么?据/p>
斐波那契序列的母函数是据/p>
在哪里据S.pan class="katex">
使用生成函数据S.pan class="katex">
因子求和法据/h2>
主要文章:据一种href="//www.parkandroid.com/wiki/recurrence-relations-method-of-summation-factors/" class="wiki_link" title="因子求和法" target="_blank">因子求和法据/a>
还有另一种解决形式的递归关系的方法据S.pan class="katex">