分形思想和遞歸思想有區別麼?html
函數調用本身,簡化了理解邏輯,但其餘處處都是問題。python
#%% def listsum(numList): if len(numList) == 1: return numList[0] else: return numList[0] + listsum(numList[1:]) print(listsum([1,3,5,7,9]))
中文版本Tutorial: turtle
--- 海龜繪圖函數
import turtle
deftree(branchLen,t): if branchLen > 5:
# 出發後作出一系列動做,最後要回到原點 t.forward(branchLen)
t.right(20) tree(branchLen-15,t) t.left(40) tree(branchLen-15,t) t.right(20)
t.backward(branchLen) def main(): t = turtle.Turtle() myWin = turtle.Screen()
t.left(90) t.up() t.backward(100) t.down() t.color("green")
tree(100,t) myWin.exitonclick()
main()
輸出:spa
import turtle def drawTriangle(points,color,myTurtle): myTurtle.fillcolor(color) myTurtle.up() myTurtle.goto(points[0][0],points[0][1]) myTurtle.down() myTurtle.begin_fill() myTurtle.goto(points[1][0],points[1][1]) myTurtle.goto(points[2][0],points[2][1]) myTurtle.goto(points[0][0],points[0][1]) myTurtle.end_fill() def getMid(p1,p2): return ( (p1[0]+p2[0]) / 2, (p1[1] + p2[1]) / 2)
#########################################################################
def sierpinski(points,degree,myTurtle): colormap = ['blue','red','green','white','yellow', 'violet','orange'] drawTriangle(points,colormap[degree],myTurtle) if degree > 0: sierpinski([points[0], getMid(points[0], points[1]), getMid(points[0], points[2])], degree-1, myTurtle) sierpinski([points[1], getMid(points[0], points[1]), getMid(points[1], points[2])], degree-1, myTurtle ) sierpinski([points[2], getMid(points[2], points[1]), getMid(points[0], points[2])], degree-1, myTurtle) def main(): myTurtle = turtle.Turtle() myWin = turtle.Screen()
myPoints = [[-100,-50],[0,100],[100,-50]] sierpinski(myPoints,3,myTurtle)
myWin.exitonclick() main()
輸出:code
要把fromPole最下面的"盤子「轉移到toPole,就先要解決:orm
要把fromPole的height-1的"盤子「轉移到withPole;在此以後:htm
把withPole的」盤子「也轉移到toPole。blog
def moveDisk(fp,tp): print("moving disk from",fp,"to",tp) def moveTower(height,fromPole, toPole, withPole): if height >= 1: moveTower(height-1,fromPole,withPole,toPole) moveDisk(fromPole,toPole) moveTower(height-1,withPole,toPole,fromPole)
模擬棧幀 之 二叉樹遍歷遞歸
/* implement */遊戲