Le premier terme de la suite R est posé comme égal à 0. Chaque terme de la suite se construit ensuite en comptant le nombre d'apparitions des différents chiffres de 9 à 0 (dans cet ordre) dans le terme précédent. Si un chiffre n'apparaît pas, il n'est pas pris en compte.

$u_0 = 0$

Ce terme comporte juste un « 0 ». Par conséquent, le terme suivant est :

$u_1 = 10$

Celui-ci est composé d'un « 1 » et d'un « 0 » :

$u_2 = 1110$

En poursuivant le procédé :

$u_3 = 3110$

$u_4 = 132110$

$u_5=13123110$

Ecrire une fonction suite_r(u0 , n) qui

  • prend en paramètre le premier terme $u_0$ et le nombre de termes à afficher n
  • retourne une liste formée des n premiers termes

Exemple suite_r(0,6) retournera $[~0 ~, ~10~ ,~ 1110~ , ~3110~ ,~ 132110 ~, ~13123110~]$

Rappels :

  • listes :
    • len(L) donne la longueur de la liste L
    • $[]$ est la liste vide
    • $L = L + [x]$ permet d'ajouter un élément $x$ à la fin d'une liste $L$
    </li>
  • chaîne de caractères :
    • len(c) donne la longueur de la chaine c
    • "31"+"4" donne la chaîne "314"
    • "" est la chaîne vide
    • </ul> </li> </ul>

      Aide :

      • chaque terme de la suite ne comporte que des chiffres de 0 à 9...
      • on pourra utiliser un tableau à deux dimensions pour compter les occurrences de ces chiffres dans un terme : [['0','1','2','3','4','5','6','7','8','9'] , [0,0,0,0,0,0,0,0,0,0]]
      • plein d'autres meilleures solutions sont possibles !

In [ ]:

Observer ce qui se passe quand $u_0$ est choisi entre 1 et 39.

In [ ]:
 

Observer ce qui se passe quand $u_0 = 40$

In [ ]:
 

Observer ce qui se passe quand $u_0=50$

In [ ]: