递归可以用来描述分形。分形常用来描述自然界中许多不规范的、真实对象的数字图形。
递归的图形还能说明递归是如何工作的。以递归绘制图树为例,绘制树枝的过程如下:首先绘制一条直线,然后左转,绘图(递归分支),右转,绘制(递归分支),最后返回原来的直线。(31条消息) python Turtle Graphics海龟绘图工具_kaituozhizzz的博客-CSDN博客
前面有写到python中海龟绘图的使用
这里我们用海龟绘图制作一个递归树
上代码:from turtle import *
def branch(length, level):
if level <= 0:
return
forward(length)
left(45)
branch(0.6*length, level-1)
right(90)
branch(0.6*length, level-1)
left(45)
backward(length)
return
left(90)
branch(100,5)
Sierpinski三角形
绘制分形模式是一种有趣的递归实验,和前面一样,向前移动,递归调用,后转,左转120°。
需要跟踪层次,定义停止的基本情况,并且有一个长度参数
上代码:from turtle import *
def sierpinski(length,depth):
if depth > 1: dot()
if depth == 0:
stamp()
else:
forward(length)
sierpinski(length/2, depth-1)
backward(length)
left(120)
forward(length)
sierpinski(length/2, depth-1)
backward(length)
left(120)
forward(length)
sierpinski(length/2, depth-1)
backward(length)
left(120)
sierpinski(200,6)
总结:
递归得到本质是函数的自我调用,
--------------------------------------------------------------------------------------------------------------------------------总结递归的本质是,函数的自我调用,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,大大地减少了程序的代码量。
递归的能力在于用有限的语句来定义对象的无限集合。
首先是使用了IF语句,然后自我调用也就是建立栈,最后函数回溯
希望多得几个赞啊,得个五一勋章
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)