Python课件05

Python课件05

ID:37861911

大小:336.20 KB

页数:15页

时间:2019-06-01

Python课件05_第1页
Python课件05_第2页
Python课件05_第3页
Python课件05_第4页
Python课件05_第5页
资源描述:

《Python课件05》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CH5Exercises2012年3月20日FibonacciSequence13世纪初,意大利数学家斐波那契(Fibonaccy)在所著《算盘书》中提高“兔子生崽”的趣题:假设兔子出生后两个月就能生小兔,且每月一次,每次不多不少恰好一对(一雄一雌)。若开始时有出生的小兔一对,问一年后共有多少对兔子。斐波那契数列定义为:F=F=112F=F+Fnn-1n-2FibonacciSequence分析:Fibonacci数列应该是:1,1,2,3,5,8,13,21,34,55……假设要求n的fibonacci

2、数列,如果n为0或1,则其fib(n)应该为1。如果n>1,那么fib(n)应该是其前两个的值,以此往前推。FibonacciSequencedeffib(x):ifx==0orx==1:return1else:returnfib(x-1)+fib(x-2)FibonacciSequencedeffibs(x):result=[0,1]foriinrange(x-2):result.append(result[-2]+result[-1])returnresult计算阶乘求某数n的阶乘。阶乘即:n!=1*

3、2*3*……*(n-1)*n,即:6!=1*2*3*4*5*65!=1*2*3*4*54!=1*2*3*4计算阶乘deffactorial(n):result=nforiinrange(1,n):result=result*ireturnresult阶乘deffactorial(n):ifn==1:return1else:returnn*factorial(n-1)猴子吃桃子有一个猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃

4、了前一天剩下的一半又多吃一个。到第10天早上想再吃时,发现只剩下一个桃子了,问第一天共摘了多少个桃子。返回猴子吃桃子求解要点:第一天的桃子数是第二天桃子数加1后的2倍,第二天的桃子数是第三天桃子数加1后的2倍,……,推出:第k天的桃子数是第k+1天桃子数加1后的2倍。设第k天的桃子数是t(k),则有:t(k)=2*(t(k+1)+1)初始条件为:t(10)=1猴子吃桃子t(9)=2*(t(10)+1)=2*2=4t(8)=2*(t(9)+1)=2*5=10t(7)=2*(t(8)+1)=2*11=22t(

5、6)=2*(t(7)+1)=2*23=46……初始条件为:t(10)=1猴子吃桃子defpeach(n):ifn>=10:return1else:return(peach(n+1)+1)*2猴子爬山一个顽猴在一座有30级台阶的小山上爬山跳跃。上山一步可上跳1级或上跳3级。求上山有多少种不同的跳法。返回猴子爬山上山最后一步到达第30级台阶,完成上山,共有f(30)种不同的爬法;到达30级之前有可能在29级(上跳1级)或27级(上跳3级),而到达第27级或29级台阶有f(27)或f(29)种。有:f(30)=

6、f(29)+f(27)以此类推:f(k)=f(k-1)+f(k-3)初始条件:f(1)=1f(2)=1f(3)=2猴子爬山defmonkey(n):ifn==1:return1elifn==2:return1elifn==3:return2else:return(monkey(n-1)+monkey(n-3))

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。