ROSECODE 372
杀死九头蛇
Slaying the hydra
九头蛇是一棵有根的树。
赫拉克勒斯的任务是砍掉九头蛇的所有头来杀死它。
但九头蛇的头会按照以下规则再次生长。在步骤 n :
- 如果赫拉克勒斯砍掉从根部长出的头,九头蛇就不会长出任何头。
- 如果 Hercules 切割了附加到给定节点的头,则该头将被删除。
头部所附着的节点在下面的节点上被复制 n 次。
这是小九头蛇的进化过程:
我们将九头蛇的大小定义为其头和节点的数量。
上图中的九头蛇在步骤 1 处的大小为 4。
我们可以将九头蛇表示为字符串,如下所示:
n(n(nn))
n(n(n)n(n))
n(nnnn(n))
我们总是砍最左边的头。
如果我们考虑所有大小为 5 的九头蛇,在 100 步骤之后,达到的最大大小如下:
5 最大尺寸为(按降序排列): 5686,341,288,156,70
在 100 步之后,所有 6 尺寸的九头蛇中 5 达到的最大尺寸是多少?
答案格式:逗号分隔列表,按降序排列
[我的计时:55 秒]
图片由 Andrej Bauer 提供
赫拉克勒斯的任务是砍掉九头蛇的所有头来杀死它。
但九头蛇的头会按照以下规则再次生长。在步骤 n :
- 如果赫拉克勒斯砍掉从根部长出的头,九头蛇就不会长出任何头。
- 如果 Hercules 切割了附加到给定节点的头,则该头将被删除。
头部所附着的节点在下面的节点上被复制 n 次。
这是小九头蛇的进化过程:
我们将九头蛇的大小定义为其头和节点的数量。
上图中的九头蛇在步骤 1 处的大小为 4。
我们可以将九头蛇表示为字符串,如下所示:
- n 一片叶子
- n(..) 一个节点,括号内是其子节点
n(n(nn))
n(n(n)n(n))
n(nnnn(n))
我们总是砍最左边的头。
如果我们考虑所有大小为 5 的九头蛇,在 100 步骤之后,达到的最大大小如下:
- n(n(n(n(n)))) - 5686
- n(n(n(nn))) - 341
- n(n(n(n)n)) - 288
- n(n(n(n))n) - 21
- n(n(nn(n))) - 70
- n(n(nnn)) - 156
- n(n(nn)n) - 9
- n(n(n)n(n)) - 6
- n(n(n)nn) - 5
- n(nn(n(n))) - 67
- n(nn(nn)) - 20
- n(nn(n)n) - 5
- n(nnn(n)) - 5
- n(nnnn) - 4
5 最大尺寸为(按降序排列): 5686,341,288,156,70
在 100 步之后,所有 6 尺寸的九头蛇中 5 达到的最大尺寸是多少?
答案格式:逗号分隔列表,按降序排列
[我的计时:55 秒]
图片由 Andrej Bauer 提供