How a simple code can produce a Sierpinski triangle

Published on

Sometimes even a simple code like this can produce an unbelievable output:

<pre style="text-align: center; min-width: 700px;"><script> let arr = []; for (let i = 0; i < 32; ++i) { arr = arr.map((_, i) => arr[i] !== arr[i - 1] ? '*' : ' '); arr.push('*'); document.writeln(arr.join(' ')); } </script></pre>

Output:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

The code puts one * in the first row, after that in the next 31 rows puts * symbol only when it has exactly 1 adjacent * in the upper row, otherwise puts empty space ( ). Who could think that it can produce a recursive triangle, i.e. a fractal!





Read previous