0

学习编程分形有助于清楚地思考某些编程问题吗?

4

11 回答 11

5

分形编程将向您介绍递归、迭代、图形编程概念、图像处理和用户界面设计。从数学的角度,您将学习几何、复数、莫比乌斯变换(克莱因分形)、仿射变换(IFS 分形)、求根方法(牛顿分形)。

最重要的是,您会看到自己的努力会产生奇怪和不寻常的图像,从而获得回报。

于 2009-04-05T13:47:29.603 回答
2

据我所知,如果没有别的,你会很好地处理递归......也许还有一点位图级编程......

于 2009-01-14T20:59:07.390 回答
2

如果您是初学者,这样的活动肯定会帮助您提高技能。除了根据分形类型和您设定的目标对分形可视化进行编程之外,还可能会为您提供一些特定的技能或知识,例如:

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

它确实是一个多才多艺且有趣的领域,有很多东西需要探索和学习。我以前经常画分形:)

于 2009-04-05T14:42:12.310 回答
1

分形让我想到了复数和分支点。我想,这是否是一件好事,这是一个见仁见智的问题。:-)

于 2009-01-14T21:35:44.883 回答
0

任何类型的编程经验都是有用的。所以是的。

尤其是给:

  • 数学问题
  • 基本算法
  • 当然还有分形编程
于 2009-01-14T21:01:01.210 回答
0

它可能会让你练习实现数学公式。

于 2009-01-14T21:01:51.350 回答
0

一些分形是显式递归的良好视觉示例;如果您对这个概念有困难,那么它们可能是工作的好问题。您可以从“海龟图形”样式的分形路径开始,例如希尔伯特曲线或经典的“雪花”分形。

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

于 2009-01-14T21:10:27.663 回答
0

我不认为编程分形会特别教你任何东西。根据分形,我想它可能会教你一些关于数学或一般分形的知识。

但是,我确实认为分形作为编程入门很有趣,初学者/学生通常对结果着迷,无论是像 mandelbrot 或 julia 集这样的图形分形,还是更容易理解的 L 系统。

当然,如果您是编程新手,那么它也有望教会您很多关于一般编程的知识。如果不出意外,分形看起来很有趣。

于 2009-01-14T21:12:58.410 回答
0

当我还是一名本科生时,我们使用分形绘图来为并行处理工作提供动力。它很快就变得相当计算密集,因此拥有多个可用的 CPU 来完成这项工作可以让您看到效率的明显提高。

因此,与递归一起,我想说它有助于学习如何在并行处理器之间平衡 CPU 负载。

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

于 2009-01-14T21:16:52.440 回答
0

很好的主意!我认为对分形进行编码是一个很棒的“练习曲”(学习)大小的程序。通过这种方式,它具有一些不错的功能:通常您不需要太多的 3rd 方代码,它们可以在相当短的时间内(和复杂性)实现,并且最终您会得到一些不错的东西,这也验证了您的工作.

此外,在数学和数值算法的实现中,如果你这样做,你会遇到很多基本问题。

从像基本 Mandelbrot 集生成器这样简单的东西,您可以扩展到评论者提到的各种问题。但是,即使坚持这一点,您也可以了解优化技术(为什么我的生成器这么慢)和数值问题(为什么我不能在这里放大),而且如果您想了解一点颜色理论(什么是 L无论如何都是一个b* 空间)和其他零碎的东西。

玩得开心!

于 2009-04-05T15:00:02.003 回答
0

分形是一个非常有趣的话题,即使是最简单的实现也会让你了解复数数学、图形生成、缩放图像和一般编程。

于 2013-05-03T13:09:47.623 回答