Aller au contenu

Triangle de Sierpiński

Triangle de Sierpiński

Le triangle de Sierpiński 1 est un exemple simple de fractale :

  1. On part d'un carré de côté 1.
  2. On colle deux copies, une à droite, une en bas ; on obtient un triangle de pixels.
  3. On colle deux copies de triangle, une à droite, une en bas.
  4. On répète le processus de construction.
  5. La largeur et la hauteur de chaque étape est une puissance de deux.

Exemples

Ci-dessous quelques étapes de constructions, avec une image et une modélisation en ASCII-Art.

🐍 Script Python
# Modélisation en ASCII-Art
[
    '##',
    '#',
]

🐍 Script Python
# Modélisation en ASCII-Art
[
    '####',
    '# #',
    '##',
    '#',
]

🐍 Script Python
# Modélisation en ASCII-Art
[
    '########',
    '# # # #',
    '##  ##',
    '#   #',
    '####',
    '# #',
    '##',
    '#',
]

🐍 Script Python
# Modélisation en ASCII-Art
[
    '################',
    '# # # # # # # #',
    '##  ##  ##  ##',
    '#   #   #   #',
    '####    ####',
    '# #     # #',
    '##      ##',
    '#       #',
    '########',
    '# # # #',
    '##  ##',
    '#   #',
    '####',
    '# #',
    '##',
    '#'
]

🐍 Script Python
# Modélisation en ASCII-Art
[
    '################################',
    '# # # # # # # # # # # # # # # #',
    '##  ##  ##  ##  ##  ##  ##  ##',
    '#   #   #   #   #   #   #   #',
    '####    ####    ####    ####',
    '# #     # #     # #     # #',
    '##      ##      ##      ##',
    '#       #       #       #',
    '########        ########',
    '# # # #         # # # #',
    '##  ##          ##  ##',
    '#   #           #   #',
    '####            ####',
    '# #             # #',
    '##              ##',
    '#               #',
    '################',
    '# # # # # # # #',
    '##  ##  ##  ##',
    '#   #   #   #',
    '####    ####',
    '# #     # #',
    '##      ##',
    '#       #',
    '########',
    '# # # #',
    '##  ##',
    '#   #',
    '####',
    '# #',
    '##',
    '#',
]

Exercice

Coder une fonction récursive telle que triangle_Sierpinski(h) renvoie une liste de h lignes de pixels formant un triangle de Sierpiński en ASCII-Art.

On garantit que h sera un entier ; une puissance de deux.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /
.324.128013],59/f.78rnb _o=ylaepcwgu)*vd4613kRmhtsP(S0+2[i:050E0v0N0u0W0t0O0o0x0t0u0O0O0r010N0W0w010406050O0A0L0L0u0l0s040R0q0t0A0=0q0m050g0|0~10120`0w04051i1b1l0g1i0`0E0W0D0*0,0.0:0M0W0z0M0t1z0M0N0^050#0n0t0v1u0-0/011y1A1C1A0N1I1K1G0N0l1j0N0M1M1w010h0%0v0m0u0L0v010*150O0w0u0m0:0U1G1@1_1%1O1*1K1-1/0^0b0o0P0l0q0w0q0O0W180m0o0Z1=0l0l0v0x2g1b1~0m1j0g1#2t1Y1!1Z1H0E200:1C0m1,2d1G1r1t0+1N2D0W2F0m0q2J1G0w2m1j2r2t2X0{1^2h2L1(2Q0l0 0t0^0o0H2q2#0_2!1 2%1O2)2+2-0U2:1_2=2r2C012`0u2,040o0I2~2s0`312^0:34360o0F3a302#323g2-0e3k3c3m3e330q2*352-0G3r2?2$1v2_3w2{370j3B3d3E3f3G3y370k3K3t3M3v3x3h0f3S2@3U3o040H0S3Z3D2M3V3H0H2/1c2;3s3!3,3$0H2}3;2 3?3+2(3O360H393|2s1m2V1b2J2w0E1!2B3u0x2R1:1j4a1k482Z451j4g0Z2W3T3,0J0^0Z0h3k3C320y2-4z3L3^0h0^1Y0W1_0z1K0p0R0W0v0l0w2O0O0J0W4E4t1(0@040Q4Y3@2(0^1a4o4A3u4#0B0X3*4B2-0o4_4(3 1O0O0E0^01510K1,0D0q4Q0o0A2F0o1C0O0N1L2j1S2F0d582h4J4L1K2i1L4P4R4T0a4V0W5p0o0M0u170v0A0l0o0m51013r4_4`4F1(4v040W4y4o0o4.3#4+3k5T5M1O0q0^0r0r5X5U3,0L0W0^3:2Z5Z0:4#4=4o065K5`5Y4Z1O5O2m0N5D4,2X5|4)1O4#0V4{320O1|0401035I4-5;014#0c5J5K5*5N0^0v0(0v6a4/0^5@2X5_5{5L5}3f0^0M5)6j5#045(5S6p2_5W6M6I0^0g0g6H6D015,0^3{6z6B6C666E040n0-6u6Q6W6J6L646N6)5m0m4M0v4O4Q4S4U4W6v3U4#4%6i6W5G046G756(6k0^0B6n6B6?334I0l4K6_1K6V7b6:7o4|5=0^0V6m5^6$657s015O0h3w7r3n0^4X6.7p4C5P632;7z3n0n0^0l4L6-5:6W73713^6F7Z4!7d6y3=7y5`7h776^6`7$5!0^0i7;6)0u0w0w1,0E7^7c4$7 776+0O7V2;7h68827H7 6l7F3u6J0T8e3U6c500o6h6=6R040C8i7!5P8s1(8g8v6O6*6,8c7u8a8u7a7A6l7e7x6$7h7C7E7J7A777I8o6/7L2O8y3f7R047T6_862 880^747W7b77798,8H7(7f7+7-7j7l7:8G326J7@8|3u777`7|0m7~90728*8E848%466j89978t8S879e0^0c8J6#8L6j5 0!628X7i047/7n5^1b4q0v2t2U9C491s4b2w2z2u0u1J9F0g4a0`9P0!0$0(04.