Como funciona?
O tapete Sierpinski começa com um quadrado. Este quadrado é dividido em nove partes iguais. O quadrado menor menor é removido do quadrado maior original. Em seguida, os quadrados restantes são novamente divididos em nove partes iguais, e o quadrado mais central de cada quadrado é removido. Quando esse processo é repetido, um belo padrão de tapete Sierpinski é observado.
Suponha que começamos com um quadrado preto.
Divida em 9 partes iguais e retire o quadrado central.
Repetir o processo leva mais adiante para algo assim.

Podemos visualizar esse fenômeno em detalhes neste vídeo .
Vamos ver como é o seu código:
# importe os módulos necessários
import
numpy as np
from
PIL
import
Imagem
# número total de repetições do processo
total
=
7
# tamanho da imagem
tamanho
=
3
*
*
total
# cria imagem
quadrado
=
np.empty ([size, size,
3
], dtype
=
np.uint8)
color
=
np.array ([
255
,
255
,
255
], dtype
=
np. uint8)
# preenchendo com preto
square.fill (
0
)
para
i
em
intervalo
(
0
, total
+
1
):
stepdown
=
3
*
*
(total
-
i)
for
x
em
intervalo
(
0
,
3
*
*
i):
# verificando o quadrado central
if
x
%
3
=
=
1
:
para
y
em
intervalo
(
0
,
3
*
*
i):
if
y
%
3
=
=
1
:
# altera sua cor
quadrado [y
*
stepdown: (y
+
1
)
*
stepdown, x
*
stepdown: (x
+
1
)
*
stepdown]
=
cor
# salva a imagem resultante
save_file
=
"sierpinski.jpg"
Image.fromarray (quadrado) .save (salvar _file)
# exibe no console
i
=
Imagem.
open
(
" sierpinski.jpg "
)
i.show()
Saída:
Este é um tapete Sierpinski após 7 repetições. Você pode obter o código para outros idiomas ‚Äã‚Äãat rosettacode .