【发布时间】:2009-01-14 20:56:13
【问题描述】:
学习编程分形是否有助于清晰地思考某些编程问题?
【问题讨论】:
标签: fractals
学习编程分形是否有助于清晰地思考某些编程问题?
【问题讨论】:
标签: fractals
分形编程将向您介绍递归、迭代、图形编程概念、图像处理和用户界面设计。从数学的角度,您将了解几何、复数、莫比乌斯变换(克莱因分形)、仿射变换(IFS 分形)、求根方法(牛顿分形)。
除此之外,您还可以看到自己的努力产生了奇怪和不寻常的图像。
【讨论】:
据我所知,如果不出意外,你会很好地处理递归......也许还有一点位图级编程......
【讨论】:
如果您是初学者,这样的活动肯定会帮助您提高技能。除了根据分形类型和您设定的目标来编程分形可视化之外,您还可能会获得一些特定的技能或知识,例如:
这确实是一个多才多艺且有趣的领域,有很多东西需要探索和学习。我以前经常画分形:)
【讨论】:
分形让我想到了复数和branch-points。我想,这是否是一件好事,这是一个见仁见智的问题。 :-)
【讨论】:
任何类型的编程经验都是有用的。所以是的。
特别是:
【讨论】:
它可能会让你练习实现数学公式。
【讨论】:
一些分形是显式递归的良好视觉示例;如果您对这个概念有困难,那么它们可能是工作的好问题。您可以从“海龟图形”样式的分形路径开始,例如希尔伯特曲线或经典的“雪花”分形。
许多分形生成方法都使用重型数字运算(例如,Mandelbrot 和 Julia 集)。数字运算本身当然是一个领域,调整分形生成器以尽可能快地运行可能是一个很好的优化练习。
【讨论】:
我不认为编程分形会教给你任何特别的东西。根据分形,我想它可能会教你一些关于数学或一般分形的知识。
但是,我确实认为分形作为编程入门很有趣,初学者/学生通常对结果着迷,无论是像 mandelbrot 或 julia 集这样的图形分形,还是更容易理解的 L 系统。
当然,如果您是编程新手,那么它也有望教会您很多关于一般编程的知识。如果没有别的,分形看起来很有趣。
【讨论】:
当我还是一名本科生时,我们使用分形绘图为并行处理工作提供动力。它很快就会变得相当计算密集,因此拥有多个可用的 CPU 来完成这项工作可以让您看到效率的明显提高。
因此,除了递归之外,我想说它有助于学习如何在并行处理器之间平衡 CPU 负载。
...或者如果设备不可用,它可能会教你禅宗般的耐心。 :)
【讨论】:
好主意!我认为对分形进行编码是一个很棒的“练习曲”(学习)大小的程序。通过这种方式,它有一些不错的功能:通常您不需要太多的 3rd 方代码,它们可以在相当短的时间内(和复杂性)实现,并且最终您会得到一些不错的东西,这也验证了您的工作.
如果你这样做,你会遇到数学和数值算法的实现方面的大量基本问题。
从像基本 Mandelbrot 集生成器这样简单的东西,您可以扩展到评论者提到的各种问题。不过,即使坚持这一点,您也可以了解优化技术(为什么我的生成器这么慢)和数值问题(为什么我不能在这里放大),而且如果您想了解一点颜色理论(什么是 L ab* 空间)和其他零碎的东西。
玩得开心!
【讨论】:
分形是一个非常有趣的主题,即使是最简单的实现也会让您了解复数数学、图形生成、缩放图像和一般编程。
【讨论】: