菜鸟学算法--递归

什么是递归

递归指计算机程序在运行时方法、函数调用自身的一种现象,适用于需要不断的深层次推导才能获得的结果,例如一段菲波那切数列,1,1,2,3,5,8... ...,每个数等于前两个数相加,求第7个数是什么,递归过程如下:

初始值:1,1

fn7 = fn6 + fn5

fn5 = fn4 + fn3

fn3 = fn2 + fn1 = 2

fn4 = fn3 + fn2 = 2+1 = 3

fn5 = fn4 + fn3 = 5

到此fn5计算结束,

计算fn6:

fn6 = fn5 + fn4

fn5 = fn4 + fn3

... ...

fn6 = 5+3 = 8

fn7 = 8+5 = 13

代码实现

def feibonaqie(n):
    if n ==1:
        return 1
    elif n == 2:
        return 1
    else:
        return feibonaqie(n-1) + feibonaqie(n-2)

print(feibonaqie(7))
E:\DataAnalysis\tools\python3\python.exe E:/DataAnalysis/tools/python3/project/SuanFa/recursion/recursion.py
13

Process finished with exit code 0

小结

用递归实现菲波那切数列,十分简洁,正如一句著名的话:如果使用循环,程序的性能可能更高;如果使用递归,程序可能
更容易理解。如何选择要看什么对你来说更重要

递归还有两个条件,一个是基线条件,一个是递归条件,基线条件保证递归何时退出结束,如上面的n=1 和 n=2就是两个基线条件,而最后的else是递归条件,是如何调用自己的逻辑。

OMLSA算法的推导过程可以总结如下: 1. 首先,OMLSA算法的目标是最小化实际干净语音和估计出来的干净语音之间的差异。这个差异可以使用公式来表示。 2. OMLSA算法通过对信号的幅度谱进行一些操作来实现降噪。具体来说,它使用LSA(log-spectral amplitude)估计增益来估计信号的幅度谱。 3. OMLSA算法使用贝叶斯定理来估计条件语音存在的概率。这个概率可以通过先验信噪比的软决策来估计。 4. OMLSA算法还使用MCRA(Minimum Controlled Recursive Averaging)方法来估计底噪。MCRA方法通过递归平滑和最小值控制来估计信号的存在概率。 综上所述,OMLSA算法的推导过程涉及LSA估计增益、贝叶斯定理估计条件语音存在概率、先验信噪比的软决策、MCRA方法估计底噪等步骤。这些步骤共同作用,实现了对语音信号的降噪处理。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [关于 IMCRA+OMLSA 语音降噪算法的详细解释](https://blog.csdn.net/wangxunweihua/article/details/90259865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [OMLSA算法推导](https://blog.csdn.net/suijue9389/article/details/120624636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海人001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值