cantor三分集

  值得一提的是,第一次听说cantor三分集是在数字电路课上,然而数电是我最不喜欢的课程之一。。。。。。

  分形大都具有自相似、自仿射性质,所以cantor三分集用递归再合适不过了,本来不想用matlab的,毕竟以后不会靠这东西。但是考虑到其方便的绘图功能还是用了。matlab写递归还是头一遭,心慌慌,不过试了一下发现和其他语言基本没差别!

  源码

function cantor(Ax, Ay, Bx, By)
precision = 0.001;
if Bx-Ax < precision
    plot([Ax, Bx], [Ay, By], ‘-‘, ‘LineWidth‘, 1, ‘Color‘, [0 0 0]);
else
    plot([Ax, Bx], [Ay, By],  ‘-‘, ‘LineWidth‘, 1, ‘Color‘, [0 0 0]);
    hold on
    Cx = Ax + (Bx-Ax)/3;
    Cy = Ay + 1;
    Dx = Bx - (Bx-Ax)/3;
    Dy = By + 1;
    Ay = Ay + 1;
    By = By + 1;
    cantor(Ax, Ay, Cx, Cy);
    cantor(Dx, Dy, Bx, By);
end

  命令窗口直接调用就行了:

cantor(10, 1, 500, 1)

  附图:

时间: 2024-08-05 16:49:44

cantor三分集的相关文章

2014年至今的博文目录(更新至2017年06月12日)

拓扑学中凝聚点的几个等价定义(2017-06-12 07:51) 江苏省2017年高等数学竞赛本二试题(含解答)(2017-06-10 20:59) 裴礼文数学分析中的典型问题与方法第4章一元函数积分学练习(2017-06-10 11:04) 2017年厦门大学第十四届景润杯数学竞赛试卷(数学类)评分标准(2017-06-05 15:31) 2017年华东师范大学数学竞赛(数学类)试题(2017-06-05 15:28) 裴礼文数学分析中的典型问题与方法第3章一元微分学练习(2017-05-30

最简单的分形图像生成算法

本文将提供一段完整地生成一幅分形图像文件的C语言代码,并且极为简单.我相信这应该是最简单的分形图像生成算法.大部分的分形图像代码也都很短,但一有递归迭代就难以理解了.而这段代码则很好懂,并且其生成的图像会使人意想不到. #include <iostream> #include <cmath> #include <cstdlib> #define DIM 1000 void pixel_write(int,int); FILE *fp; int main() { fp =

分形的程序实现

近一段时间一直在研究分形,写了几个分形相关的程序,这是其中一个.程序中里面包含近20种分形图形的生成算法. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Dragon Curve) (4)C折线 (5)谢尔宾斯基(Sierpinski)三角形 (6)谢尔宾斯基(Sierpinski)地毯 (7)谢尔宾斯基(Sierpinski)四面体 (8)拆分三角形 (9)分形树(Tree) (10)分形二叉树(Binary Tree) (11)希尔伯特-皮亚诺(Hilbert-Pe

18个分形图形的GIF动画演示

这里提供18个几何线段分形的GIF动画图像.图形颜色是白色,背景色为黑色,使用最基本的黑与白以表现分形图形.对分形几何有兴趣的人可以看下.我在写程序时基本是参考<分形算法与程序设计_Visual C++实现>这本书的光盘代码.几乎每一种分形算法我都写了单独的文章介绍,可以通过链接查看. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Dragon Curve) (4)C折线 (5)谢尔宾斯基(Sierpinski)三角形 (6)谢尔宾斯基(Sierpinski)地毯 (

《转》二进制与三进制的那些趣题

http://blog.csdn.net/zhuxiaoyang2000/article/details/6091767 先来思考几个问题,并不难,各位大牛应能秒杀: 1. 小明是个卖苹果的,小红一次在小明那买N(N<1024)个苹果.小明每次都要数N个苹果给小红,唉,太麻烦了.于是小明想出了一种方法:他把苹果分在10个袋子中,则无论小红来买多少个苹果,则他都可以整袋整袋的拿给小红.问怎样分配苹果到各个袋子? 2. 有16种溶液,其中有且只有一种是有毒的,这种有毒的溶液与另一种试剂A混合会变色,

hihoCoder #1312 : 搜索三&#183;启发式搜索(A*, 康托展开)

原题网址:http://hihocoder.com/problemset/problem/1312 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 在小Ho的手机上有一款叫做八数码的游戏,小Ho在坐车或者等人的时候经常使用这个游戏来打发时间. 游戏的棋盘被分割成3x3的区域,上面放着标记有1~8八个数字的方形棋子,剩下一个区域为空. 游戏过程中,小Ho只能移动棋子到相邻的空区域上.当小Ho将8个棋子都移动到如下图所示的位置时,游戏就结束了. 小Hi:小Ho,你觉

Cantor expansion

Cantor expansion的本质是将一个排列hash成为一个数,这个数就是这个排列rank值,将原本需要用nn的空间来记录的排列状态在n!的空间内记录下来,有效利用了空白的空间.而将排列变为排名的桥梁便是展开后的那个an数组.其实原理非常简单,但是对于解决类似N数码问题等牵涉的排列状态记录的问题时特别有用. #include<iostream> #include<cstdio> #include<algorithm> #include<vector>

[知识点]Cantor展开

// 此博文为迁移而来,写于2015年3月14日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vtyo.html 1.含义 一个很简单的概念哈,其实它的本质就是将你当前状态压缩成一个数,且状态与数一一对应,故一般用在哈希判重,因为有时哈希判重会存不下,或者根本不可能.这是一项辅助的知识点,故不详解. 2.公式 X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0

算法篇——Cantor的数表

来源:<算法竞赛入门经典>例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,…….输入n,输出第n项. 样例输入: 3 14 7 12345 样例输出: 2/1 2/4 1/4 59/99 分析: 数表提示我们按照斜线分类.第1条斜线有1个数,第2条有2个数,第3条有3个数……第k条有k个数.这样,前k条斜线一共有S=1+2+3+…