Jak to działa?
Dywan Sierpińskiego zaczyna się od kwadratu. Ten kwadrat jest podzielony na dziewięć równych części. Najmniejszy mniejszy kwadrat jest usuwany z pierwotnego większego kwadratu. Następnie pozostałe kwadraty ponownie dzieli się na dziewięć równych części, a najbardziej centralny kwadrat z każdego kwadratu jest usuwany. Kiedy ten proces się powtarza, obserwuje się piękny wzór dywanu Sierpińskiego.
Załóżmy, że zaczynamy od czarnego kwadratu.
Podziel go na 9 równych części i usuń centralny kwadrat.
Powtarzanie procesu prowadzi dalej do czegoś takiego.

Możemy szczegółowo zwizualizować to zjawisko w tym wideo .
Zobaczmy, jak wygląda jego kod:
# importuj wymagane moduły
importuj
numpy as np
from
PIL
import
Obraz
# całkowita liczba powtórzeń procesu
łącznie
=
7
# rozmiar obrazu
rozmiar
=
3
*
*
łącznie
# utwórz obraz
square
=
np.empty ([rozmiar, rozmiar,
3
], dtype
=
np.uint8)
color
=
np.array ([
255
,
255
,
255
], dtype
=
np. uint8)
# wypełniając to czarnym
square.fill (
0
)
for
i
in
zakres
(
0
, łącznie
+
1
):
stepdown
=
3
*
*
(łącznie
-
i)
for
w
zakresie
(
0
,
3
*
*
i):
# sprawdzanie centralnego kwadratu
if
x
%
3
=
=
1
:
for
y
w
zakresie
(
0
,
*
*
i):
if
y
%
3
=
=
1
:
# zmień kolor
square [y
*
stepdown: (y
+
1
)
*
stepdown, x
*
stepdown: (x
+
1
)
*
stepdown]
=
color
# zapisz wynikowy obraz
save_file
=
"sierpinski.jpg"
Image.fromarray (kwadrat) .save (zapisz _file)
# wyświetl w konsoli
i
=
Obraz.
open
(
" sierpinski.jpg "
)
i.show ()
Wyjście:
To jest dywan Sierpińskiego po 7 powtórzeniach. Jego kod dla innych języków można pobrać z rosettacode .