2016-03-19 86 views
0

我不知道如何用递归计算Sierpinski carpet中矩形区域的面积。sierpinski地毯 - 矩形区域

我知道如何在任何级别计算空矩形:

int sier(int level) 
{ 
    if(level==1) return 1; 
    else 
    { 
     return sier(level-1) + pow(8,level-1); 
    } 
} 

但我真的不知道如何计算与非空矩形组成的矩形的面积。

我尝试这样做:(1 - 边长)

double area(int level, int a) 
{ 
    if(level == 1) return (1.0/9.0) * pow(a,2); 
    else 
    { 
     return pole(level-1,a) * (1.0/pow(2,2*level)); 
    } 
} 

有人能帮助我吗?

+1

我认为计数空方块是一个虚假的痕迹。谢尔宾斯基地毯具有递归结构;在分形的本地递归规则上对面积计算进行建模似乎是合理的。计算什么是填充的,而不是什么是空的。 –

+0

@JohnBollinger谢谢!非常有帮助。我做的 :) – Mordek

回答

1

计算谢尔宾斯基地毯的公式与维基百科链接中给出的公式相同。设A是Sierpinski地毯上0级矩形的面积。

double Sier(int level) 
{ 
    return Math.Pow(double.Parse(8.0/9.0), (double)level) * A; 
} 

我希望这有助于!