Questions tagged «fractal»

分形是自相似的形状,通常非常详细。著名的分形集包括Mandelbrot集,Julia集和Phoenix集。树状的分形图也很常见。

4
H树目录
程序员经常沉迷于绘制分形。我认为我们需要一种新的基于计算机的介质。 的ħ树是一个相当简单的类型的分形制成的水平线和垂直线。这是第十次迭代(由Wikipedia提供): 现在,假设图像中的每一行都是标准计算机文件系统中的目录(文件夹)。除最小的线外,所有线都相交于比自己小的两条线。这两条较小的线是较大线的子目录。因此,中间的大水平线是两条最大的垂直线的父目录,这两个垂直线又是图像中其余线的父级,祖父母等。 挑战 编写一个程序,该程序通过stdin或命令行(或最接近的替代方案)接收一个正整数N,并创建一个目录树,该目录树反映了H树形的第N次迭代。 第一次迭代(N = 1)是一条水平线。在每个后续迭代中,将一组新的垂直线或水平线添加到当前线的末端。因此,对于N = 2,添加两条垂直线(形成H形),对于N = 3,添加四条水平线,依此类推。 根目录的名称必须始终为tree。子目录的名称必须是它们相对于它们的父行,使用方向一致right,left,up和down。 由于根目录始终是一条水平线,因此它将始终具有right和left子目录。但是,这两个会up和down子目录,以及那些将right和left再次,等等。 迭代限制末尾的目录应该为空。 例 对于N = 3,目录树应如下所示: tree right up down left up down 附加信息 理想情况下,该tree目录将弹出源代码所在的文件夹,但是如果转到某个工作目录也可以。 您可能会假设tree您将在其中创建目录的地方没有预先存在的目录。 您可能会假设您的程序将始终在相同的常见现代操作系统(Mac / Windows / Linux)上运行。基本上不必担心使用并非在所有操作系统上都起作用的文件分隔符。 计分 这是代码高尔夫球,因此以字节为单位的最短代码获胜。

1
递归Steiner链
斯坦纳链是一组N个圆,每个圆与两个其他不相交的圆以及该链的上一个和下一个圆相切,如下图所示: 在此挑战中,您将编写一个程序/函数以递归方式绘制Steiner链,也就是说,给定链的圆将是链的另一次迭代的基础圆: 挑战 编写一个程序/函数,该程序/函数接受图像尺寸以及表示链的每个连续迭代中圆圈水平的整数列表,并输出绘制了递归Steiner链的图像。 输入值 您的程序/函数将接受2个参数: s -图片的宽度和高度 ls -表示链的每个连续迭代中存在的圆数的正整数列表,从最上链到最下链排序 输出量 您的程序/函数将输出尺寸为sx 的图像,s显示可追溯的Steiner链。 顶层基圆将与图像一样大,直径为s,位于图像内部 为了简化起见,Steiner链的2个基圆将是同心的,即2个基线圆的中心点将是相同的 给定的外半径,R和圆的在链条的数量,N为内半径的公式R'是R' = (R-R*sin(pi/N))/(sin(pi/N)+1) 链的圆以及内部基圆将是链的下一次迭代的外部基圆 在通过链环递归时,下一个链的顺序应对应于中的下一个值 ls 在通过链的内圈递归时,顺序应与其父顺序相同(例如[5,2]): 所有链条应在深度为 ls 链条的旋转无关紧要: 但是,递归链相对于其父母中心点的旋转应相同: 所有圆都应画出轮廓或实心填充 颜色选择留给实现,除了漏洞(例如,用相同的颜色填充所有内容) 示例运行 在以下示例中,颜色由确定(depth of the recursion)^4。 您可以在此处找到源。 chain(600,[5,4,3]) chain(600,[11,1,1,1,1,1,1]) chain(600,[5,6,7,8,9])

3
生成牙签序列
什么是牙签序列? 根据维基百科 在几何形状中,牙签序列是一个二维图案序列,可以通过将线段(“牙签”)重复添加到序列中的先前图案来形成。 设计的第一阶段是单个“牙签”或线段。第一阶段之后的每个阶段均采用先前的设计,并针对每个裸露的牙签末端,在该末端以直角居中放置另一个牙签。 此过程导致增长的模式,其中阶段n的段数以分形模式在0.45n2和0.67n2之间振荡。如果T(n)表示阶段n的段数,则当n接近2的幂时,出现T(n)/ n2接近其最大值的n值。发生在大约是2的幂的1.43倍的数字附近。牙签序列中各阶段的结构通常类似于T平方形或Ulam-Warburton细胞自动机中的细胞排列。 该图案中所有被牙签包围的边界区域(但不能被牙签交叉)必须是正方形或矩形。据推测,牙签图案中的每个开放矩形(即,一个完全被牙签包围但内部没有牙签的矩形)的边长和面积为2的幂,其中边长之一最多两个。 任务 您必须制作一个程序或函数,使其从STDIN,函数自变量或命令行自变量中获取输入,并在该阶段进行嘟嘟分形。除不可避免的情况外,禁止在行尾使用换行符。边界框必须最小,包括前导和尾随空间。对于初始线,我们\在空间中设置两个对角线。输入保证小于2000。至少一行具有非空格字符。允许尾随空格。 测试用例 1 \ \ 5 \ /\ /\ / /\ \/\/\ \ \ \ \ \/\/\ \/ / \/ \/ \

4
ASCII艺术H树
一个^ h树是分形树结构,用一条线开始。在每次迭代中,将T分支添加到所有端点。在这个挑战中,您必须创建每第二个 H树级别的ASCII表示。 在第一级只需包含三个连字符减号字符: --- 下一级是递归构造的: 创建上一个级别的副本的2x2矩阵,以三个空格或三行分隔。 将副本的中心与H形式的ASCII艺术线条连接起来。-用于水平线,|垂直线以及+线彼此相遇的地方。 第二级 -+- -+- | | +-----+ | | -+- -+- 第三级 -+- -+- -+- -+- | | | | +--+--+ +--+--+ | | | | | | -+- | -+- -+- | -+- | | +-----------+ | | -+- | -+- -+- …

1
确定有理坐标是否在右Sierpinski三角形中
所述的Sierpinski三角形是一组其通过用一个三角形起始和反复分裂的所有三角形分成四个全等三角形并除去中心三角形构造在平面上的点。右侧的Sierpinski三角形在和处有角(0,0),如下所示:(0,1)(1,0) 该集合的一些等效定义如下: n全部针对上述过程的第t次迭代n。 (x,y)带有0 <= x <= 1和的点0 <= y <= 1,对于所有正整数n,nx和y的二进制展开式中的th位都不都是1。 让 T = {(0,0),(1,0),(0,1)} 让f上套由以下定义2D点的函数: f(X) = {(0,0)} ∪ {(x+t)/2 | x∈X, t∈T} 然后右谢尔宾斯基三角形是拓扑封闭的的至少固定的点的(通过一组容纳)f。 让S是正方形{(x,y) | 0<=x<=1 and 0<=y<=1} 让g(X) = S ∩ {(x+t)/2 | x∈(X), t∈T}(T如上定义) 然后,右边的Sierpinski三角形是的最大固定点g。 挑战 编写一个程序或函数,该程序或函数接受4个整数,a,b,c,d如果(a/b,c/d)属于正确的Sierpinski三角形,则给出真实值,否则给出假值。 计分 这是代码高尔夫球。以字节为单位的最短代码获胜。 测试用例 以下是右边的Sierpinski三角形: 0 1 0 1 …

2
ASCII艺术方形仿射形
编写可以创建仿射形的最小程序。您可以使用任何会产生与以下规则相同的结果的方法。您不必使用建议方法中的任何想法! 您的程序将有两个输入,第一个输入以074从0到7的三位数组成的格式定义模式。第二个输入将定义大小,3将为8x8,4将为16x16,依此类推(2 ^ n)。您的程序必须为从0(1x1)到至少5(32x32)的所有大小输出正确的结果。如果它为更高的数字生成任何输出,则它必须是正确的,即,它必须在达到一定大小之前生成正确的输出,但是如果出现错误,则不会生成超出该大小的输出。您可能会假定最大大小为15(32768x32768),因为对于ASCII艺术作品(1GB)而言,这已经是疯狂的大小! 8x8模式将如下所示(规则160)。最左边的数字代表Block A,中间的数字代表Block (请不要粗鲁!),B最右边的数字代表Block C。要构建分形,请将其在两个维度上缩小一半,然后对块应用旋转/镜像规则。要缩小图案,请将其均匀分成2x2区域。每个区域中将只有3个可见字符或无。如果有可见的字符,则在较小的块中的适当位置放置一个字符,否则放置一个空格。规则0- 3未镜像,规则4- 7已镜像。规则0和4不旋转,1并且5顺时针旋转90度,2并且6旋转180度,3然后7顺时针旋转270度。按所示顺序将三个块缝在一起,分别A在左上角,B左下角和C右下角。 AAA AA A AA A BBB CC B BBC BBCCC B CCC 按规则编号缩小,旋转和镜像: 0 1 2 3 4 5 6 7 ---- ---- ---- ---- ---- ---- ---- ---- AA BAA CCB C C BCC AAB AA A BB A …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.