La courbe du dragon

Ce dernier exercice a pour but de vous faire tracer une fractale appelée courbe du Dragon.

Téléchargez le fichier « à trous » ci-dessous et glissez le dans votre dossier Recursivite > Fractales.

Toutefois, il faut commencer par répondre à quelques questions sur son cahier ou document numérique...

Présentation de cette courbe

  • On plie une bande de papier en deux, et on la déplie, le motif obtenu est le suivant :

  • On plie une bande de papier en deux, puis à nouveau en deux (dans le même sens, arbitrairement à gauche), et on la déplie, le motif obtenu est le suivant :

  • On plie une bande de papier en deux, puis à nouveau en deux (dans le même sens, arbitrairement à gauche) et encore une troisième fois en deux, et on la déplie, le motif obtenu est le suivant :

  • On répète les pliages 4 fois de suite, on déplie la figure, on obtient le motif suivant :

  • On répète les pliages 5 fois, toujours dans le même sens et ensuite on déplie la bande de papier, on obtient le motif suivant :

  • Nous sommes rapidement limités au moment du 6ème ou du 7ème pliage alors même qu'il est possible d'appréhender la suite des figures ainsi obtenues :

Modélisation de la situation

On cherche à connaitre les différents pliages, quel que soit le numéro de l'étape, afin de pouvoir tracer le motif dessiné au bout d'un grand nombre d'itérations.

  • À l'étape 1, à l'issue du dépliage, on obtient un « coude » orienté vers la droite.

    La figure ainsi obtenue sera notée D.

  • À l'étape 2, à l'issue du dépliage, on obtient trois « coudes » orientés successivement vers la droite, encore vers la droite puis vers la gauche.

    La figure ainsi obtenue sera notée D - D - G

  • À l'étape 3, à l'issue du dépliage, on obtient sept « coudes ».

    La figure ainsi obtenue sera noté D - D - G - D - D - G - G

  • etc...

Simulation

Cette partie a pour but d'identifier comment passer d'une étape à la suivante à partir de ces modélisations. On peut déjà constater que le nombre de lettres est impaire dans chaque notation.

  1. Quelle est la lettre « centrale » dans chaque notation ? Pourquoi ?

  2. On a réécrit ci-contre la notation de l'étape 2 : , et celle de l'étape 3 : .

    A l'aide des indications de couleur, essayez d'identifier ce que sera la notation de l'étape 4.

  3. En déduire l'algorithme permettant de passer d'une étape à l'autre.

  4. Appelez l'enseignant pour vérifier vos réponses.

Programmation et visualisation

Question 1 :

Complétez la définition de la fonction inverse() qui prend comme argument une chaine de caractères constituée de 'D' et de 'G' et qui renvoie une chaine de caractères de même longueur dans laquelle les 'D' et les 'G' ont été échangés par rapport à la chaine initiale. De plus, cette deuxième chaîne est « renversée » par rapport à la première.

1
def inverse(chaine):
2
    """
3
    chaine - str, chaîne de caractères constituée de D et de G
4
    Sortie: str, chaîne de caractères de même longueur dans laquelle les D sont devenus des G
5
            et vice-versa, et l'ordre des lettres a été renversé
6
    """
7
    pass

ExempleExemples de tests

1
>>> inverse('DDGDDGG')
2
'DDGGDGG'
3
4
>>> inverse('DDGDDGGDDDGGDGG')
5
'DDGDDGGGDDGGDGG'

Question 2 :

Complétez la définition récursive de la fonction dragon() qui renvoie la notation de la n-ième étape sous la forme d'une chaîne de caractères constituée de 'D' et de 'G'.

1
def dragon(n):
2
    """
3
    n - int, entier strictement positif
4
    Sortie: str, chaîne de caractères constituée de D et de G correspondant à la suite des pliages à l'étape n
5
    """
6
    pass

ExempleExemple de tests

>>> dragon(1) 'D'

>>> dragon(3) 'DDGDDGG'

>>> dragon(6) 'DDGDDGGDDDGGDGGDDDGDDGGGDDGGDGGDDDGDDGGDDDGGDGGGDDGDDGGGDDGGDGG'

Question 3 :

En déduire la définition de la fonction dessin() qui permet de tracer la courbe du dragon avec turtle à l'étape n.

1
def dessin(stylo, n, dist):
2
    """
3
    stylo, une tortue
4
    n, dist - int, entiers strictement positifs
5
    Sortie: None, la tortue trace l'étape n de la courbe du dragon, avec des segments de longueur dist
6
    """
7
    pass

ExempleExemple de courbe de dragon

L'appel dessin(sophie, 10, 10) renvoie la figure suivante :

Pour les plus rapides...

Reprendre votre code et remplacer les lettres G, D par des listes de 1 et -1.