Recursion 递归使用示例 使用递归的一个例子是什么(没有多少解释和/或代码示例)?

Recursion 递归使用示例 使用递归的一个例子是什么(没有多少解释和/或代码示例)?,recursion,Recursion,任何类型的循环都可以表示为尾部递归,它通常在函数式语言中使用。构建/处理任何类型的递归数据结构,显然-树是一回事,但例如列表也可以递归表示(头是元素,尾是其余的[另一个列表])。任何类型的循环都可以表示为尾递归,这在函数式语言中很常用。构建/处理任何类型的递归数据结构,显然-树是一回事,但例如列表也可以递归表示(头是元素,尾是其余[另一个列表])。任何可以迭代解决的问题都可以递归解决。我会质疑所问问题的有效性,因为迭代与递归解决问题主要取决于具体情况。任何可以迭代解决的问题都可以递归解决。我会质

任何类型的循环都可以表示为尾部递归,它通常在函数式语言中使用。构建/处理任何类型的递归数据结构,显然-树是一回事,但例如列表也可以递归表示(头是元素,尾是其余的[另一个列表])。

任何类型的循环都可以表示为尾递归,这在函数式语言中很常用。构建/处理任何类型的递归数据结构,显然-树是一回事,但例如列表也可以递归表示(头是元素,尾是其余[另一个列表])。

任何可以迭代解决的问题都可以递归解决。我会质疑所问问题的有效性,因为迭代与递归解决问题主要取决于具体情况。

任何可以迭代解决的问题都可以递归解决。我会质疑所问问题的有效性,因为迭代与递归解决问题主要取决于具体情况。

使用:解析;遍历;生成分形;一些形式的加密

例如:河内塔楼;斐波那契序列;子集生成(有大量的示例,如果您愿意,我可以为您编写其中一些示例?)

优点:简单;对某些问题(如阿克曼函数、遍历)直观

缺点:速度慢(尽管可以使用堆栈实现任何递归解决方案);可能导致堆栈溢出异常

如果有人想知道加密,下面是密码块链接模式的简短说明:

链接为分组密码添加了一种反馈机制。街区是 首先进行加密,然后将其结果反馈到 下一个块的加密。因此,每个块修改加密 在下一个街区

在CBC中,明文首先被加密,结果存储在 反馈寄存器。然后,下一个纯文本与内容进行异或运算 登记册的名称。这将成为加密的下一个输入 例行公事。产生的加密存储在反馈寄存器中 再一次,下一个纯文本与此异或。这个过程重复 直到消息的结尾。对于解密,将对块进行解密 正常并存储在反馈寄存器中-在下一个块完成后 解密后,它与反馈寄存器和 等等


[改编自Bruce Shneier的优秀著作]

使用:解析;遍历;生成分形;一些形式的加密

例如:河内塔楼;斐波那契序列;子集生成(有大量的示例,如果您愿意,我可以为您编写其中一些示例?)

优点:简单;对某些问题(如阿克曼函数、遍历)直观

缺点:速度慢(尽管可以使用堆栈实现任何递归解决方案);可能导致堆栈溢出异常

如果有人想知道加密,下面是密码块链接模式的简短说明:

链接为分组密码添加了一种反馈机制。街区是 首先进行加密,然后将其结果反馈到 下一个块的加密。因此,每个块修改加密 在下一个街区

在CBC中,明文首先被加密,结果存储在 反馈寄存器。然后,下一个纯文本与内容进行异或运算 登记册的名称。这将成为加密的下一个输入 例行公事。产生的加密存储在反馈寄存器中 再一次,下一个纯文本与此异或。这个过程重复 直到消息的结尾。对于解密,将对块进行解密 正常并存储在反馈寄存器中-在下一个块完成后 解密后,它与反馈寄存器和 等等


[改编自Bruce Shneier的优秀著作]

@Oddthinking有许多算法利用先前加密的块(或某些先前值)作为输入来加密下一个块,例如密码块链接模式、密码反馈模式甚至简单的异或操作。谢谢,Dhruv。我不怀疑这样的算法可以用递归实现,但这不是一个经典的递归示例,其中每一步都比最后一步更小、更简单。如果流可以连续无限制地运行,那么就有可能出现堆栈溢出。@如果你认为你是对的,这不是一个经典的递归示例。但这是一个直观的例子。基本情况可以从初始化向量开始,并可以从那里递归。但是,连续流肯定存在堆栈溢出的风险。因此,我改变了我的答案,以反映某种形式的不确定性。我认为有许多算法利用以前加密的块(或以前的某个值)作为输入来加密下一个块,例如密码块链接模式、密码反馈模式,甚至是简单的异或操作。谢谢,Dhruv。我不怀疑这样的算法可以用递归实现,但这不是一个经典的递归示例,其中每一步都比最后一步更小、更简单。如果流可以连续无限制地运行,那么就有可能出现堆栈溢出。@如果你认为你是对的,这不是一个经典的递归示例。但这是一个直观的例子。基本情况可以从初始化向量开始,并可以从那里递归。但是,连续流肯定存在堆栈溢出的风险。所以我改变了答案,以反映某种形式的不确定性。一般来说:性能和堆栈深度。具体来说:阶乘函数。或使用非常深的树进行树遍历。通常:性能和堆栈深度。具体来说:阶乘函数。或者用非常深的树进行树遍历。