高尔夫代码:Mandelbrot 集

2024-01-16

代码高尔夫的通常规则。下面以Python中的实现为例

from PIL import Image

im = Image.new("RGB", (300,300))
for i in xrange(300):
    print "i = ",i
    for j in xrange(300):
        x0 = float( 4.0*float(i-150)/300.0 -1.0)
        y0 = float( 4.0*float(j-150)/300.0 +0.0)
        x=0.0
        y=0.0
        iteration = 0
        max_iteration = 1000
        while (x*x + y*y <= 4.0 and iteration < max_iteration):
            xtemp = x*x - y*y + x0
            y = 2.0*x*y+y0
            x = xtemp
            iteration += 1
        if iteration == max_iteration:
            value = 255 
        else:
            value = iteration*10 % 255
        print value 
        im.putpixel( (i,j), (value, value, value))

im.save("image.png", "PNG")

结果应该是这样的

允许使用图像库。或者,您可以使用 ASCII art。这段代码的作用是一样的

for i in xrange(40):
    line = []
    for j in xrange(80):
        x0 = float( 4.0*float(i-20)/40.0 -1.0)
        y0 = float( 4.0*float(j-40)/80.0 +0.0)
        x=0.0
        y=0.0
        iteration = 0
        max_iteration = 1000
        while (x*x + y*y <= 4.0 and iteration < max_iteration):
            xtemp = x*x - y*y + x0
            y = 2.0*x*y+y0
            x = xtemp
            iteration += 1
        if iteration == max_iteration:
            line.append(" ")
        else:
            line.append("*")
    print "".join(line)

结果

********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
**************************************** ***************************************
**************************************** ***************************************
**************************************** ***************************************
**************************************** ***************************************
**************************************** ***************************************
**************************************** ***************************************
**************************************** ***************************************
***************************************   **************************************
*************************************       ************************************
************************************         ***********************************
***********************************           **********************************
************************************         ***********************************
*************************************       ************************************
***********************************           **********************************
********************************                 *******************************
****************************                         ***************************
*****************************                       ****************************
****************************                         ***************************
************************   *                         *   ***********************
***********************    *                         *    **********************
******************** *******                         ******* *******************
****************************                         ***************************
******************************                     *****************************
*****************************  *        *        *  ****************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************
********************************************************************************

Edit:

ASCII 艺术规则:

  • 行/列的大小是参数化的,并且代码必须使用任何有效值。
  • 根据迭代次数,密度至少有三个级别的差异(所以我的原型不符合要求)
  • 水平方向(所以我的原型不符合要求)
  • 关键参数是固定的(最大迭代= 1000,失控值xx + yy

图形规则:

  • 行/列的大小是参数化的,并且代码必须使用任何有效值。
  • 至少三级颜色、灰度
  • 水平定向(我的原型符合要求)

几年前就已经有了 Perl 解决方案 发表于佩尔蒙克斯 http://www.perlmonks.org/?node_id=329492,它写道:

#!/usr/bin/perl
 $r=25; $c=80;
                                              $xr=6;$yr=3;$xc=-0.5;$dw=$z=-4/
                                              100;local$";while($q=$dr=rand()
                                             /7){$w+=$dw;$_=join$/,map{$Y=$_*
                                             $yr/$r;
  join""                                    ,map{$                  x=$_*$
 xr/$c;($                                   x,$y)=                 ($xc+$x
  *cos($                                   w)-$Y*               sin$w,$yc+
                                           $x*sin              ($w)+$Y*cos
  $w);$                                   e=-1;$                    a=$b=0
;($a,$b)   =($u-$v+$x,2*$a*               $b+$y)                    while(
$ u=$a*$   a)+($v=$b*$b)<4.5  &&++$e     <15;if                     (($e>$
  q&&$e<   15)||($e==$q and   rand()     <$dr))  {$q=$e;($d0,$d1)   =($x,$
  y); }                        chr(+(   32,96,+  46,45,43,58,73,37  ,36,64
 ,32)[$                        e/1.5]   );}(-$   c/2)..($c/2)-1;}   (-$r/2
 )..($     r/2)-1;select$",     $",$", 0.015;                       system
$^O=~m     ~[wW]in~x?"cls":     "clear";print                       ;$xc=(
$d0+15     *$xc)/16;$yc=($       d1+15*$yc)/                        16;$_*=
1+$z for                         $xr,$yr;$dw                     *=-1 if rand
()<0.02;                          (++$i%110                      )||($z*=-1)}

这是一个“曼德尔布罗探险家”。

(它可以旋转、放大和缩小,并随机滚动以检查区域 曼德尔布罗特集的它认为“有趣”。 它是创造者。)

它并不完全遵循此处指定的规格,但是 做了一个有趣的条目(恕我直言)。也许是一个简单的 对于 Perl 诸神来说,Mandlebrot 并不是很有趣;.-)

Regards

rboo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高尔夫代码:Mandelbrot 集 的相关文章

  • 代码高尔夫:将多个排序列表合并为一个排序列表

    实现一种算法 将任意数量的排序列表合并为一个排序列表 目的是用您喜欢的任何语言创建最小的工作程序 例如 input 1 4 7 2 5 8 3 6 9 output 1 2 3 4 5 6 7 8 9 input 1 10 2 5 6 7
  • Code Golf:重复文本的“颜色突出显示”

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 感谢下面的 greg0ire 帮助理解关键概念 挑战 构建一个程序来查找所有子字符串并使用颜色属性 标记 它们 在 XML 中有效
  • Code Golf:数学表达式评估器(尊重 PEMDAS)

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我挑战你编写一个遵守 PEMDAS 运算顺序 括号 求幂 乘法 除法 加法 减法 的数学表达式求值器 而不使用正则表达式 预先存在
  • python dict.add_by_value(dict_2)?

    问题 gt gt gt a dict a 1 b 2 gt gt gt b dict b 3 c 2 gt gt gt c c a 1 b 5 c 2 因此 这个想法是通过 int float 值以最短的形式添加到字典中 这是我设计的一种解
  • Mandelbrot 程序未输出正确的数据

    我的班级接到一个作业 要编写一个绘制曼德尔布罗图的程序 我们基本上必须让程序绘制结果的位图 事情是 我的CalcMBF函数仅输出2作为曼德尔布罗数 我完全不知道为什么会这样 谁能帮我吗 这是我的代码 using System using S
  • Code Golf:验证数独网格

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 介绍 有效的数独网格由数字 1 到 9 填充 并且数字在 9 行或列的每个子块中出现的次数不会
  • 代码高尔夫:井字棋

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 按字符数发布您的最短代码 以检查玩家是否获胜 如果获胜 是哪一个 假设变量中有一个整数数组b
  • 分形编程[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Code Golf:1x1 黑色像素

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 最近 我使用我最喜欢的图像编辑器制作了一个 1x1 黑色像素 当您想以便宜的方式在 HTML
  • 高尔夫代码:Mandelbrot 集

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 代码高尔夫的通常规则 下面以Python中的实现为例 from PIL import Imag
  • 如何在 Maxima CAS 中求解指数方程

    我在 Maxima CAS 中有功能 f t 2 exp 2 i pi t exp 4 pi t i 4 here t 是 0 到 1 之间的实数 函数应该在曼德尔布罗特集的主心形线的边界上给出一个点 我怎样才能解方程 eq1 c f t
  • Tkinter创建图像函数报错(pyimage1不存在)

    我是一名来自外界的学生 之前没有任何编程经验 我一直在学习 Python 作为数学课的延伸 我一直在尝试创建一个使用 Tkinter 生成分形的程序 该代码本身运行良好 但包含用户输入 GUI 会导致出现错误 Exception in Tk
  • 代码高尔夫:找到所有字谜

    一个词是一个anagram http en wikipedia org wiki Anagram如果该单词中的字母可以重新排列以形成不同的单词 Task 按字符数查找给定单词列表的所有字谜组的最短源代码 空格和换行符应计为字符 使用代码尺
  • 编程高尔夫:玩俄罗斯方块

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 基础知识 考虑以下四格骨牌和空的比赛场地 0123456789 I O Z T L S J
  • Code Golf:数字的质因数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • Code-golf:将乘法表输出到控制台

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 我最近向一位从事工作经验的学生推荐了一篇有关将乘法表转储到控制台的文章 它使用嵌套的 for
  • 代码高尔夫:弗罗贝尼乌斯数

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 编写最短的程序来计算给定正数集的弗罗贝尼乌斯数 弗罗贝尼乌斯数是不能写成集合中数字的正倍数之和
  • 扩展 Mandelbrot 生成 Julia

    在一个项目上工作 要求我使用相同的代码 请注意在同一个文件中生成曼德尔布罗集和朱莉娅集 我有一个工作曼德尔布罗集 但可以看到如何使用相同的代码扩展到朱莉娅集 也许我没有理解之间的区别 谁能详细说明一下 import numpy as np
  • 如何在 Erlang 中将数字转换为单词?

    我发现了一个关于将数字转换为 单词 的有趣问题 代码高尔夫 数字到单词 https stackoverflow com questions 309884 code golf number to words 我真的很想看看你如何在 Erlan
  • 在数字集合中查找最接近的匹配[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的

随机推荐

  • 带有模板类的通用参考

    Example template
  • SQL高效调度生成算法

    The idea 想象一下教育中心有branches Courses该教育中心的信息对所有分支机构都是通用的 Branches CREATE TABLE Branch id int 10 unsigned NOT NULL AUTO INC
  • 升级到 Xcode 6.3 后,在启动时我收到错误:“无法解析 Bonjour 服务。” [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 升级到 Xcode 6 3 后 我现在收到一个带有错误的警报面板 The Bonjour service could not be res
  • HasActivityInjector 无法在 android dagger 2 中解决

    我试图实施有活动注入器在我的 Android 应用程序中 但它显示 HasActivityInjector 无法解析 下面是我在项目中使用的依赖项和插件 apply plugin kotlin kapt and implementation
  • Tomcat:查找目录时不附加尾随“/”

    我在 Tomcat 7 0 22 Java 1 6 MacOS Lion 中部署了 war 存档 战争称为 myapp war 因此 Tomcat 正在服务http localhost myapp http localhost myapp
  • 程序运行时间

    我如何 从程序 我的意思是在我这次要打印 最终返回 之前 找出我的程序运行的时间 提前致谢 edited 非常感谢您的所有回答 但我的程序很短 有没有其他方法可以找出微秒或纳秒的时间 因为使用下面的方法我收到 0 当程序启动时 你会这样做
  • 表单模型绑定 laravel 5.1 多个模型

    我想要 Laracollective 的 Form 包中的多个对象的 Form 模型绑定 如下所示 Form model user vendors array route gt array user update user gt id 我可
  • 为什么主键会自动创建聚集索引

    当我在oracle表中创建主键时 为什么它默认创建 聚集 索引 创建主键时自动创建聚集索引的原因是什么 难道Oracle设计者这样设计Oracle只是他的喜好吗 Oracle 将创建一个索引来管理没有预先存在的索引适用的唯一约束 如果没有索
  • Android - 以编程方式检查开发人员选项?

    我有一个使用意图用相机拍摄照片的应用程序 但最近我遇到了使用 后台进程限制 等开发人员选项的用户遇到的问题 他们关闭了所有后台应用程序 所以除了调用 onPause 和 onResume 之外 我的应用程序也被杀死了 我希望是否有可能检查此
  • SqlServer处于脚本升级模式

    Vista 刚刚完成了众多更新之一 重新启动计算机后 我尝试使用 Sql Server Management Studio 连接到 Sql Server 2008 实例 但收到此错误 连接到 MSSQLSERVER2008 时出错 附加信息
  • 使用 Jabber 发送网络消息

    也问过服务器故障 https serverfault com questions 19586 using jabber to send network messages 我也被建议将其发布在这里 我们需要在其他用户在线提交报告内容时通过网络
  • 如何在 TcxExtLookupComboBox 中使用 TcxCustomDataSource?

    我使用 Devexpress 的 TcxExtLookupComboBox 并尝试实现自定义数据源 我已经像这样设置了自定义数据源 procedure TMainForm FormCreate Sender TObject begin fD
  • 使用 R 将数据从 PDF 导入到 HTML

    有没有办法使用 R 将数据从 pdf 文件导入为 HTML 格式 我尝试使用以下代码 library tm filename file pdf doc lt readPDF control list text layout elem lis
  • Android NFC <技术列表> - 问题

    我想在 Android 上编写我的第一个 NFC 应用程序 为此 我使用 Android 开发人员链接 http developer android com guide topics nfc index html http develope
  • 如何将 FlowDocument 添加到 StackPanel?

    我创建了以下内容class为了有一个easy way显示格式化的WPF 文档中的文本 然而这个解决方案返回一个流程文件 我遇到了麻烦整合我当前应用程序中的这个 FlowDocument 只是添加文本块StackPanels WrapPane
  • 如何在 Python OpenCV 中读取 TIFF 图像的 Alpha 通道?

    我想使用 Python OpenCV 从 tiff 图像中读取 alpha 通道 我正在使用 Enthought Canopy 和 OpenCV 2 4 5 3 模块 我按照 OpenCV 网站的教程使用 cv2 imread 但它似乎不起
  • 通过函数链创建节点和边时,在命令末尾使用 Iterate() 步骤。这一步有什么用呢?

    在 Tinkerpop 3 3 Gremlin 中通过函数链创建节点和边时 在命令末尾使用 Iterate 步骤 这个 iterate 步骤的意义是什么 我在解释其功能的文档中找不到任何提及 iterate 步骤的内容 有人可以向我指出文档
  • 第二次在 foreach 时未在函数内定义变量

    考虑所有这些文件 vars php if local var var foo foo var1 var1 foo1 foo1 else var foo var1 foo1 remote vars remote php is the same
  • Facebook 与 API 版本 2.9 共享自定义参数

    我需要在 Facebook 上分享测验结果 其中包含自定义标题 图片和说明 效果完美4月18日更新至2 9版本之前 但它不适用于 2 9 版本 那我是不是错过了什么 或者 Facebook 不希望我们在 2017 年分享我们网站的自定义 F
  • 高尔夫代码:Mandelbrot 集

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 代码高尔夫的通常规则 下面以Python中的实现为例 from PIL import Imag