递归:程序调用自身

形式:在函数定义有直接或间接调用自身

阶乘: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 递归函数的更多相关文章

  1. Python学习札记(十四) Function4 递归函数 & Hanoi Tower

    reference:递归函数 Note 1.在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. eg.计算阶乘: #!/usr/bin/env python3 def ...

  2. 三星Note 7停产,原来是吃了流程的亏

    三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...

  3. 《Note --- Unreal --- MemPro (CONTINUE... ...)》

    Mem pro 是一个主要集成内存泄露检测的工具,其具有自身的源码和GUI,在GUI中利用"Launch" button进行加载自己待检测的application,目前支持的平台为 ...

  4. 《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》

    ---------------------------------------------------------------------------------------------------- ...

  5. javascript中的递归函数

    正常的递归函数如下: function factorial(num){ ){ ; }else{ ); } } 这个函数表面看起来还ok,但如果我们执行下面代码就会出错. var jenny = fac ...

  6. [LeetCode] Ransom Note 赎金条

    
Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 all 
th ...

  7. 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 ...

  8. 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 ...

  9. Beginning Scala study note(7) Trait

    A trait provides code reusability in Scala by encapsulating method and state and then offing possibi ...

随机推荐

  1. JAVA对mysql的基本操作

    一.了解几个概念(了解) 1.DriverManager 1)必须知道它是管理数据库的所有驱动程序 2)它的所有方法都是静态的,其中最重要的是getConnection()方法,我们可以通过它获取一个 ...

  2. 最近的AI

    虚拟币和AI  两个大类怎么兴起?

  3. wordpress 暴力破解防范

    一.author页面地址 author页面地址为 http://yoursite/?author=1 ID是自增的 请求这个地址会 301 到一个url,这个url里包含了作者的用户名.虽然不算漏洞, ...

  4. 【leetcode】461. Hamming Distance

    problem 461. Hamming Distance solution1: 根据题意,所求汉明距离指的是两个数字的二进制对应位不同的个数.对应位异或操作为1的累积和. class Solutio ...

  5. 【Keil5 MDK】fromelf工具的基本用法(fromelf --help)

    ARM FromELF, 5.03 [Build 76] [MDK-ARM Standard] ARM image conversion utilityfromelf [options] input_ ...

  6. [LeetCode&Python] Problem 704. Binary Search

    Given a sorted (in ascending order) integer array nums of n elements and a target value, write a fun ...

  7. Android IPC机制基础

    概要 多进程概念及多进程常见注意事项 IPC基础:Android序列化和Binder 跨进程常见的几种通信方式:Bundle通过Intent传递数据,文件共享,ContentProvider,基于Bi ...

  8. 聊一聊 redux 异步流之 redux-saga

    让我惊讶的是,redux-saga 的作者竟然是一名金融出身的在一家房地产公司工作的员工(让我想到了阮老师...),但是他对写代码有着非常浓厚的热忱,喜欢学习和挑战新的事物,并探索新的想法.恩,牛逼的 ...

  9. Java基于opencv实现图像数字识别(四)—图像降噪

    Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...

  10. hightcharts详细教程

    1.初始化highcharts var chart = Highcharts.chart('container', options); 2.options 自定义图表的配置项 const option ...