B2.4.4–5 · HL 递归

分形树 · HL 应用

Python · 逐步执行

分形树 · HL 应用

同一绘制规则在更小的尺度上重复,直到深度为零。

选择“播放”或“下一行”,跟踪 Python 的执行过程。

Python 实现

高亮表示下一条将执行的语句。数值显示执行该行之前的状态。

import mathsegments = []def fractal(x, y, length, angle, depth):    if depth == 0:        return    end_x = x + length * math.cos(angle)    end_y = y - length * math.sin(angle)    segments.append([x, y, end_x, end_y])    fractal(end_x, end_y, length * 0.65, angle + 0.5, depth - 1)    fractal(end_x, end_y, length * 0.65, angle - 0.5, depth - 1)

B2.4.4 应用:重点理解自相似性、更小的子问题与终止条件。分支递归代码仅作演示,不属于 B2.4.5 的跟踪要求。math 是 Python 的标准数学模块;角度以弧度表示。segments 记录绘图端点。每条分支产生两条更小的分支。

继续探索

返回递归课程 →

所有 B2.4 动画 →

所有练习与资源 →