2016-03-19 12 views
0

Ich habe keine Ahnung, wie Sie die Fläche eines Rechtecks ​​in einer Sierpinski carpet mit Rekursion zählen.Sierpinski Teppich - Fläche eines Rechtecks ​​

Ich weiß, wie leeres Rechteck in jeder Ebene zu zählen:

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

Aber ich weiß wirklich nicht, wie mit nicht leeren Rechtecke mit der Fläche eines Rechtecks ​​zu zählen.

Ich versuche dies: (a - Seitenlänge)

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)); 
    } 
} 

Kann mir jemand helfen?

+1

Ich denke, leere Quadrate zählen ist eine falsche Spur. Der Sierpinski Teppich hat eine rekursive Konstruktion; Es erscheint sinnvoll, die Flächenberechnung auf der nativen Rekursionsregel des Fraktals zu modellieren. Zähle, was gefüllt ist, nicht was leer ist. –

+0

@JohnBollinger Danke! War sehr hilfreich. Ich habe es gemacht :) – Mordek

Antwort

1

Die Formel für die Berechnung des Sierpinski-Teppichs ist die gleiche wie im Wikipedia-Link angegeben. Sei A die Fläche des Rechtecks ​​in einem Sierpinski-Teppich auf Stufe 0.

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

Ich hoffe, das hilft!

Verwandte Themen