门格尔海绵,补充和关联

几个月前,我还从未听说过卡尔·门格尔(Karl Menger)或他发明的立方形分形。现在我有了一篇关于海绵的长篇博文,还有一个我称之为“伙伴”的扩展。

内容

补充和同事

门格尔海绵分形在给定水平上的补充是所有被切掉以达到该水平的材料。海绵关联是我在计算海绵补时遇到的问题。

首先是代码

我坚信精心编写的计算机代码是人们互相交流以及控制机器的一种手段。我将要展示的一些图像可以在Web上的其他地方看到,但我最满意的是生成它们的代码,所以我将首先描述它。

这是主要的程序,海绵.如果你一直关注这个博客,你会看到以前的一些.在命令行中,海绵只需要两个输入参数,一个非负整数指定级别,一个布尔变量指定门格尔海绵或其补体。海绵是用暗色的金色展示的,而补片则是用浅色的。这个函数海绵是递归的,递归调用有两个以上的参数。

级别0终止递归并首先进行处理。零级海绵是一个实心立方体.零级补码是空的,我们只显示立方体的轮廓。最终,所有输出都是由函数调用产生的多维数据集(d w c),显示半宽的深色或浅色立方体w集中在C = [x y z],所以只有不同位置的不同大小的立方体被显示出来。通常情况下,多维数据集与当前图中的任何内容合并,从而显示两个集合的并集。一个命令清除当前显示轴,从而启动一个新集合。

如果级别不为零,我们将到达嵌套循环和递归调用。的变量xy而且z取所有可能的组合-20而且+ 2,所以最里面的语句被执行27次。现在是关键变量新西兰开始发挥作用了。它是非零的个数[x y z].向量[0 0 0]有0个非0并且位于某个小立方体的中心。向量像[2 0 0]而且[0 -2 0]有一个非零,在这个小立方体的某个面中心。向量像[2 0 -2]有两个非零在一些边的中间,比如向量[-2 2 -2]角上有三个非0。有七个[x y z]的年代Nz < 2剩下20个Nz >= 2.这为生成下一级门格尔海绵提供了三分规则。

类型海绵
函数海绵(m,s,d,w,c) %海绵(m,s) % m:水平,20^m个立方体。% s:海绵,暗金色或互补,浅金色。% %再生用法:%海绵(m,s,d,w,c) % d:深色或浅色。% w:半宽。% c:中心。如果nargin == 2 init_fig(5) sponge(m,s,s,3,[0 0 0]) elseif m == 0 && s cube(d,w,c) elseif m == 0 cube([],w,c) else w = w/3;C = C /3;For x = [-2 0 2] For y = [-2 0 2] For z = [-2 0 2] nz = nnz([x y z]);如果s && nz >= 2海绵(m-1,s,d,w,c+[x y z]) elseif ~s && nz < 2海绵(m-1,~s,d,w,c+[x y z]) end end end end end end end end end

0级

这是0级海绵,一个实心立方体。

cla海绵(0,真的)

这是0级补。它是空的。

cla海绵(0,假)

1级

将0级分割为3x3x3 = 27个更小的立方体。删除中心立方体和每个面的中心。这是1级海绵,有20个小方块和7个洞。

cla海绵(真正的)

这是第1级补体,缺失的7个立方体。

cla海绵(假)

如果您能以某种方式将1级海绵和1级补体再次放在一起,您将重新创建一个稍微使用过但完整的立方体。

分类海绵(1,正确)海绵(1,错误)

我只需要达到一级去年年底为了装饰我的节日的问候

2级

二级海绵有20^2 = 400多维数据集。我在第二级中走了这么远我的第一篇文章关于门格尔海绵。

cla海绵(真正的)

下一个人物以前从未出现过克里夫的角落.我称之为第二级部分补充

cla海绵(假)

形成第2级部分补体和第1级补体的并集,得到整个第2级补体。

海绵(假)

第2级海绵及其补体的并集是一个完整的立方体。

海绵(真正的)

3级

这是3级门格尔海绵。它是由20^3 = 8000小方块。它的体积还不到原来立方体的一半。

cla海绵(真正的)

这是第三级部分补语。

cla海绵(假)

结合第1、2和3级部分补语,生成整个第3级补语。

海绵(假)海绵(假)

第三级海绵和它的补体的并集,同样是满的。

海绵(真正的)
格式紧凑的格式

十个级别

我没有足够的时间,我的笔记本电脑也没有足够的内存来完成三级以上的任务,但如果我们可以继续进行三级测试,那么第十级海绵将由20^10 = 102400亿非常小的立方体。

水平会降低关卡的音量吗0按因子立方m r。^在哪里

R = (20/27)
R = 0.7407

到第10级时,海绵的体积将仅为原始体积的5%,其余95%将在补体中。

M = (0:10)';卷= [r.]第一轮。^ ^米m];
流(“体积\ n \ n \ n”)流(' level sponge complement\n')流('%10d %8.3f %8.3f\n', [m]”)
体积级海绵补足0 1.000 0.000 1 0.741 0.259 2 0.549 0.451 3 0.406 0.594 4 0.301 0.699 5 0.223 0.777 6 0.165 0.835 7 0.122 0.878 8 0.091 0.909 9 0.067 0.933 10 0.050 0.950
情节(m,卷,“啊——”“线宽”(1.0)包含“水平”) ylabel (“体积”)({传奇“海绵”“补”},“位置”,(。67.47 .21 .08])
关闭

联系

一个网络词典说an联系在一个组织中拥有有限或从属成员的人。我们都熟悉学术组织中的副教授。当我学习如何计算海绵互补时,我不小心创建了这些海绵关联。我喜欢这些图片,所以我一直把它们放在身边。

我现在用于生成关联的代码几乎与用于生成海绵的代码相同。只要数一个坐标向量中0的个数,而不是非0的个数。

dbtype28海绵dbtype28联系
28 nz = nnz([x y z]);28 nz = 3 - nnz([x y z]);

2级

在0级和1级,海绵和同伴构造相同的物体。但是在第二层我们有49个立方体。

班副(2,真的)

律师们有他们自己的补充。立方体计数在水平7 m ^作为一名律师20 * 7 ^ (m - 1)为了它的补足。第2层有149个立方体。

班副(假)

3级

这是3级助理。

cla副(真的)

第3级辅助补充。

cla副(假)

4级

4级图像最好以较大的格式观看。如果你想看,点击这些链接。

https://blogs.mathworks.com/cleve/files/level_4_true.png

https://blogs.mathworks.com/cleve/files/level_4_false.png




发布与MATLAB®R2021a

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。