note 7 递归函数
递归:程序调用自身
形式:在函数定义有直接或间接调用自身
阶乘:N!=123...N
def p(n):
x = 1
i = 1
while i <= n:
x = x * i
i = i + 1
return x
n!=(n-1)! * n
...

兔子数列
斐波那契数列


def fib(n):
if n == 1 or n == 2:
return 1
else :
return fib(n - 1) + fib(n - 2)
print fib(6)
汉诺塔

count = 0#步骤数 x**n - 1
def hanoi(n,A,B,C):
global count
if n == 1:
print 'Move',n,'from',A,'to',C
count += 1
else:
hanoi(n - 1,A,C,B)
print 'Move',n,'from',A,'to',C
count += 1
hanoi(n - 1,B,A,C)
hanoi(5,'Left','Mid','Right')
print count
随机停车

#随机停车
import random
def parking(low,high):
if high - low < 1:
return 0
else :
x = random.uniform(low,high - 1)
return parking(low,x) + 1 + parking(x + 1,high)
s = 0
for i in range(1000):
s += parking(0,5)
print s / 10000.

Renyi停车常数
递归的时间开销


递归的优劣分析
优势strength
它能使一个蕴含递归关系且结构复杂的程序简洁精炼,增加可读性
特别是在难于找到从边界到解的全过程的情况下,如果把问题推进一步,其结构仍维持原问题的关系
劣势weakness
嵌套层次深,函数调用开销大
重复计算
note 7 递归函数的更多相关文章
- Python学习札记(十四) Function4 递归函数 & Hanoi Tower
reference:递归函数 Note 1.在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. eg.计算阶乘: #!/usr/bin/env python3 def ...
- 三星Note 7停产,原来是吃了流程的亏
三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...
- 《Note --- Unreal --- MemPro (CONTINUE... ...)》
Mem pro 是一个主要集成内存泄露检测的工具,其具有自身的源码和GUI,在GUI中利用"Launch" button进行加载自己待检测的application,目前支持的平台为 ...
- 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》
---------------------------------------------------------------------------------------------------- ...
- javascript中的递归函数
正常的递归函数如下: function factorial(num){ ){ ; }else{ ); } } 这个函数表面看起来还ok,但如果我们执行下面代码就会出错. var jenny = fac ...
- [LeetCode] Ransom Note 赎金条
Given an arbitrary ransom note string and another string containing letters from all th ...
- Beginning Scala study note(9) Scala and Java Interoperability
1. Translating Java Classes to Scala Classes Example 1: # a class declaration in Java public class B ...
- Beginning Scala study note(8) Scala Type System
1. Unified Type System Scala has a unified type system, enclosed by the type Any at the top of the h ...
- Beginning Scala study note(7) Trait
A trait provides code reusability in Scala by encapsulating method and state and then offing possibi ...
随机推荐
- PXE自动装机
PXE自动装机 一.搭建PXE远程安装服务器 PXE自动装机需要桌面模式 假如不是桌面模式安装的PXE需要安装桌面模式软件包 yum groupinstall "Desktop" ...
- Python 安装第三方库中常见问题总结
1.安装某个库时,例如 pip install tinify 出现Permission denied时,在安装命令的最前面添加sudo 例如: sudo pip install tinify 即可. ...
- parallel::ForkManager
use Parallel::ForkManager; my $MAX_PROCESSES=10; #申明最大进程数(一次创建的进程越多,越耗内存): my $pm = new Parallel:: ...
- mysql数据库 事务和索引
1.MySQL数据库特性: 原子性(atomidity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一 ...
- python中sys模块之输入输出错误流
import sys sys.stdout.write("msg") # 控制台白色字体打印 普通输出流 sys.stderr.write("msg") # ...
- 计算机网络实验 UDP套接字编程
这是个傻瓜式操作教程 西科大计算机网络实验 UDP套接字编程 我用自己的Ubuntu16.04来举例,实验室的是虚拟机,差不多 只针对第三个题目,修改服务器来通过响应客户端发送的GetTime并发送给 ...
- informix 常见系统表
systables:描述数据库中的每张表:syscolumns:描述数据库中表的列:sysindexes:描述数据库中列的索引:sysfragments:存储了分段索引的片段信息:sysfragaut ...
- 2018-2019-2 20165313 Exp3 免杀原理与实践
实践内容(3.5分) 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 1.2 通过组合 ...
- 2018-2019-2 20165313《网络对抗技术》Exp1 缓冲区溢出实验
实践涉及指令 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令.(机器码:90) JNE:条件转移指令, ...
- [USACO09HOL]假期绘画Holiday Painting
观察到列数只有15,可以想到对于每一列维护一颗线段树 sum表示该区间与目标矩阵中该区间相同元素个数 lazy表示该区间应被修改成什么颜色 g即目标矩阵中该区间白色格子的个数 显然一个区间的sum=区 ...