2009-01-14 26 views

回答

2

从我记得你会得到一个很好的手柄上的递归,如果没有别的......也许有点位级编程以及...

+0

有没有必要使用递归来绘制分形。我知道的大多数分形,如Mandelbrot集使用简单的迭代。 – recursive 2009-01-14 21:01:05

+0

即使他们完成递归,它也是递归的限制,无论如何都会重构迭代。或者至少我见过的每个例子都有明确的限制。 – EBGreen 2009-01-14 21:09:57

+0

递归如何处理轨道和固定点?IIRC证明了对于所有N> = 1,在Mandelbrot集合中存在长度为N的循环非终止轨道。 – Jimmy 2009-01-14 21:17:31

0

任何一种编程经验是有用的。所以是的。

:特别适用:

  • 数学问题
  • 基本算法
  • ,当然分编程
0

这将可能给你实现数学公式练习。

0

一些分形是显式递归的好例子;如果你对这个概念感到困难,那么他们可能是一个很好的工作问题。你可以从“龟图形”风格分形路径开始,如希尔伯特曲线或经典的“雪花”分形。

许多分形生成方法使用重型数字运算(例如Mandelbrot和Julia集合)。数字运算本身就是一个领域,调整分形生成器以尽可能快地运行可能是优化中的一个很好的练习。

0

我不认为编程分形将教你什么特别。根据分形,我想它可能会教你一些关于数学或分形的一般信息。

但是,我认为分形作为编程的入门很有趣,而初学者/学生往往对结果着迷,无论是更多的图形分形如mandelbrot或茱莉亚集合,还是更易于理解的L-系统。

当然,如果你是新手编程,它也希望能够教你很多关于编程的知识。如果没有别的,分形是有趣的看看。

0

当我还是一名本科生时,我们使用分形图来推动我们的工作。它可以快速获得相当大的计算量,因此可以使用多个CPU来完成这项工作,这样可以显着提高效率。

所以,随着递归,我会说它有助于学习如何在并行处理器之间平衡CPU负载。

...或者如果设备不可用,它可能会教你禅样耐心。 :)

1

分形让我想起了复数和branch-points。我想,这是否是一件好事是一个意见。 :-)

5

分形编程将向您介绍递归,迭代,图形编程概念,图像处理和用户界面设计。从数学的角度来看,您将学习几何,复数,Mobius变换(Kleinian分形),仿射变换(IFS分形),根发现方法(牛顿分形)。

最重要的是,您可以看到您的努力会产生奇怪和不寻常的图像。

2

如果您是初学者,此类活动肯定会帮助您提高技能。除了根据分形类型和设置可能会给你一些特定的技能或知识类的目标是编程分形可视化:

  • 与图形,图像处理工作;
  • 理解递归和递归 结构;
  • 优化技术;
  • 低级程序优化;
  • 理解如何计算机的运行 (例如为何分辨率将是 通常限于 - >浮点 精度和误差积累);
  • 并行编程;
  • 一些数学改进和 扩展您的兴趣范围;
  • 了解各种技术 (例如,您可以code Mandelbrot setPixelBender这是 真的很快,因为可能会在 GPU上执行);
  • 了解复杂压缩算法(例如某种分形 压缩);
  • 创造力(例如,你发明自己的 分形集着色算法);
  • 更多别的:)

这确实是一个多才多艺和有趣的领域,很多事情探索和学习。我用来绘制分形很多:)

0

好主意!我认为编码分形是一个伟大的“练习”(研究)大小的程序。它有这样一些很好的功能:通常你不需要太多的第三方代码,它们可以在相当短的时间内(和复杂性)实现,并且你最终还能看到一些很好的东西,这也验证了你的工作。

此外,在数学和数值算法的实现方面都存在大量的基本问题,如果你这样做,你会碰到这些问题。

从一个基本的Mandelbrot集合生成器那样简单的事情,你可以像评论者提到的那样分支出各种各样的问题。尽管如此,你仍然可以学习优化技术(为什么我的发生器很慢)和数值问题(为什么我不能在这里放大),而且如果你想要一点色彩理论(什么是L a b *空间无论如何)和其他零碎。

玩得开心!

0

分形是一个非常智力上有趣的话题,甚至最简单的实现也会让你学习复数数学,图形生成,缩放图像和一般编程。