【发布时间】:2015-12-31 03:57:03
【问题描述】:
我目前正在研究 MIT 6.006 课程的在线课程材料以获取乐趣。我正在处理问题集#2(找到here)并且对科赫雪花问题(问题#1)的渐近渲染时间的计算有疑问。
根据解决方案,当 CPU 负责渲染和坐标计算时,渐近渲染时间比 CPU 和 GPU 拆分进程更快。数学对我来说很有意义,但有没有人对为什么这是真的有直觉?
在我看来,CPU 仍然需要计算坐标来渲染雪花(Theta(4^n) 时间),然后必须渲染图像。在我看来,这些应该是加法的,而不是乘法的。
但是,解决方案表明这些是相乘的,因此由于每个三角形/线段较短(对于问题 1 中的最后两个子问题),运行时间减少到 Theta((4/3)^n) 或 Theta( 1)!
我不是计算机科学家——这些东西对我来说只是一个有趣的爱好。我真的很感谢你们其中一位天才的回答:)
此外,我在玩 python 乌龟模块时也获得了一些乐趣。这里有一些非常不完美的代码来在 python 中绘制科赫雪花:
import turtle
def snowflake(n,size=200):
try: turtle.clear()
except: pass
turtle.tracer(0,0)
snowflake_edge(n,size)
turtle.right(120)
snowflake_edge(n,size)
turtle.right(120)
snowflake_edge(n,size)
turtle.update()
turtle.hideturtle()
def snowflake_edge(n,size=200):
if n==0:
turtle.forward(size)
else:
snowflake_edge(n-1,size/3.0)
turtle.left(60)
snowflake_edge(n-1,size/3.0)
turtle.right(120)
snowflake_edge(n-1,size/3.0)
turtle.left(60)
snowflake_edge(n-1,size/3.0)
【问题讨论】:
-
我使用了您的代码并对其进行了很多修改,并添加了一些内容,我可以在我的版本中发布 CodeReview 问题吗? (我会给你归因)
-
没问题!我不在乎
-
你可以看到我的这段代码的版本(最初基于你的这里)-> codereview.stackexchange.com/questions/115453/… 结果需要相当多的代码来生成我想要的动画。
标签: python big-o asymptotic-complexity