An algorithm for obtaining arbitrarily close approximations to the Sierpinski triangle is as follows:
This is an attractive fixed set, so that when the operation is applied to any other set repeatedly, the images converge on the Sierpinski triangle. This is what is happening with the triangle above, but any other set would suffice.
If one takes a point and applies each of the transformations d_a, d_b, and d_c to it randomly, the resulting points will be dense in the Sierpinski triangle, so the following algorithm will again generate arbitrarily close approximations to it:
Start by labelling p1, p2 and p3 as the corners of the Sierpinski triangle, and a random point v1. Set vn+1 = ½ ( vn + prn ), where rn is a random number 1, 2 or 3. Draw the points v1 to v∞. If the original point vn was a point on the Sierpinski triangle, then all the points vn lie on the Sierpinski triangle. If the first point vn to lie within the perimiter of the triangle is not a point on the Sierpinski triangle, none of the points vn will lie on the Sierpinski triangle, however they will converge on the triangle. If v1 is outside the triangle, the only way vn will land on the actual triangle, is iff vn is on what would be part of the triangle, if the triangle was infinitely large.
The Sierpinski triangle has Hausdorff dimension log(3)/log(2) ≈ 1.585, which follows from the fact that it is a union of three copies of itself, each scaled by a factor of 1/2.
If one starts with Pascal's triangle with 2^n rows and colors the even numbers white, and the odd numbers black, the result is an approximation to the Sierpinski's triangle. This calculation is actually a manifestation of elementary cellular automaton rule 90.
Sierpinski triangle of eight iterations
See also: