微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

有没有一段代码,让你觉得人类的智慧也可以璀璨无比?

2015-10-05 21:02 程序员之家

网友在知乎的一个提问帖:


有没有一段代码,让你觉得人类的智慧也可以璀璨无比?


不一定要是完整算法,就是那种看着看着就觉得嗨爆了,惊为天人的结构或语句。


下面是【烧茄子】引用了知名博主 Matrix67 的一篇博文:


《用三段 140 字符以内的代码生成一张 1024×1024 的图片》

http://www.matrix67.com/blog/archives/6039


Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推这么长的代码来生成一张图片。具体地说,参赛者需要用 C++ 语言编写 RD 、 GR 、 BL 三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和 j 两个整型参数(0 ≤ i, j ≤ 1023),然后需要返回一个 0 到 255 之间的整数,表示位于 (i, j) 的像素点的颜色值。举个例子,如果 RD(0, 0) 和 GR(0, 0) 返回的都是 0 ,但 BL(0, 0) 返回的是 255 ,那么图像的最左上角那个像素就是蓝色。参赛者编写的代码会被插进下面这段程序当中(我做了一些细微的改动),最终会生成一个大小为 1024×1024 的图片。



我选了一些自己比较喜欢的作品,放在下面和大家分享。


首先是一个来自 Martin Büttner 的作品:



它的代码如下:




同样是来自 Martin Büttner 的作品:



代码如下:




下面这张图片仍然出自 Martin Büttner 之手:


难以想象, Mandelbrot 分形图形居然可以只用这么一点代码画出:



Manuel Kasten 也制作了一个 Mandelbrot 集的图片,与刚才不同的是,该图描绘的是 Mandelbrot 集在某处局部放大后的结果:



它的代码如下:




这是 Manuel Kasten 的另一作品:



代码如下:



这是来自 githubphagocyte 的作品:



代码如下:




这是来自 githubphagocyte 的另一个作品:



这是一张使用 diffusion-limited aggregation 模型得到的图片,程序运行起来要耗费不少时间。代码很有意思:巧妙地利用宏定义,打破了函数与函数之间的界限,三段代码的字数限制便能合在一起使用了。



最后这张图来自 Eric Tressler:



这是由 logistic 映射得到的 Feigenbaum 分岔图。和刚才一样,对应的代码也巧妙地利用了宏定义来节省字符:


出处:知乎

网址:http://www.zhihu.com/question/30262900/answer/48741026

 
程序员之家 更多文章 我们这一代人的困惑 神剪辑,揭秘程序员加班内幕,不能看,看完想笑又想哭! 美国12位创新型程序员:让科技永远改变 说说怎么写clean code 500,000+年薪程序猿出身哪里 猎聘网揭秘前十大学校
猜您喜欢 Material Design技术分享 greenplum导入数据的几种方法 2016年你应该学习的语言和框架 骚年,我看你是学Java的奇才,秘籍拿去 Vim Python大杀器