Lien des tests : https://colab.research.google.com/drive/19rgPCHlixMgYWtJ8LCPuh9KingE5j6-C#scrollTo=mTUUmq6KV0KU
Fonction croissante renvoyant True si la liste est croissante et False si non :
La valeur en sortie est donc booléenne.
La fonction est documentée avec les arguments de l’entrée et de la sortie :
Un docsstring a été ajouté pour avoir une aide sur la fonction :
Pour avoir une aide sur la fonction il suffit d’utiliser la fonction help()
Quelques tests :
⚠ Attention : l’indice et sa valeur représentent deux nombres distincts
Exemple : si l’on a besoin d’indice(s) :
Exemple : si l’on a besoin de valeur(s) :
Autre fonction : on souhaite garder les valeurs qui « correspondent » à 1 et enlever celles qui « correspondent » à 0 :
Énumérons toutes les sous suites possibles d’une suite
Nous avons 2 choix possibles pour chacun des immeubles de la suite (conserver ou démolir) donc 2n choix possibles.
Un nombre binaire k de n bits (avec un bit à 1 pour conserver et à 0 pour démolir) peut représenter une sous suite.
Exemple : avec la suite [1,2,6,5], on souhaite coder la sous suite [1,2]
On écrira 1100 pour conserver 1 et 2 et démolir 6 et 5.
La suite est constituée de 4 immeubles on donc 24 sous suites au total soit 16
La sous suite obtenue après démolition est représentée par [1,2]
Codons une fonction sous_suite()
- en entrée 2 arguments une suite (liste x) et un entier (k de type int) représentant une sous suite
- en sortie une variable b de type list représentant la sous suite.
Test de la fonction :
On peut maintenant exploiter notre fonction pour lister toutes les sous suites possibles :
Test :
Trouver une plus grande sous suite parmi celles qui sont croissantes
Petit brouillon 🤔 :
Suite x longueur n
sous suites (2**n) représentés par un entier k ; 0<=k<=2**n
x=[5,2,6] ; n=3
2**3=8 sous suites possibles
k=0 –> 0/0/0 –> []
k=1 –> 0/0/1 –> [6]
k=2 –> 0/1/0 –> [2]
k=3 –> 0/1/1 –> [2,6]
k=4 –> 1/0/0 –> [5]
k=5 –> 1/0/1 –> [5,6]
k=6 –> 1/1/0 –> [5,2]
k=7 –> 1/1/1 –> [5,2,6]
« Tant que le programme ne trouve pas de sous suite croissante plus longue, il garde la précédente ».
Programme final 😯 :
Corrigé :
Test de la fonction sur des listes aléatoires :
2 réponses
yasss
yassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss