exercices immeuble:
on veut faire une fonction.
elle voit si les listes données sont en ordre
croissant ou pas. si c'est croissant on garde,
sinon c'est faux.
liste_immeubles=[5,1,8,2,7,6,10,9,11]
liste_a_garder=[]
def croissante (liste_immeubles):
for i in range (liste_immeubles):
if i(0)<i(1):
i=i+1
liste_a_garder.append(i)
return liste_a_garder
else:
return liste_a_garder
print (liste_a_garder)
correction:
def croissante (suite):
for i in range (len(suite)-1):
if suite[i]>=suite[i=i+1]:
return False
return True
on veut créer une fonction qui prends l'indice 1 ou
0 et qui va supprimer si l'indice est de 0, et qui
fait une liste avec les 1.
liste=[5,1,8,2,7,6,10,9,11]
liste2=[0,1,1,1,0,1,0,1,0]
listegarder=[]
def garder (liste, liste2):
for i in range (liste2):
if i==0:
correction:
liste1=[5,1,8,2,7,6,10,9,11]
liste2=[1,0,0,0,1,0,1,0,1]
def ongarde (immeubles,detruire):
liste=[]
for i in range (len(detruire)):
if detruire [i]==1:
liste.append(immeubles[i])
return liste
ongarde(liste1,liste2)
>>>
0 s
ongarde(liste1,liste2)
[5, 7, 10, 11]
#testé et reussi!
liste1=[5,1,8,2,7,6,10,9,11]
liste2=[1,0,0,0,1,0,1,0,1]
def ongarde (immeubles,detruire):
liste=[]
for i in range (len(detruire)):
if detruire [i]==1:
liste.append(immeubles[i])
return liste
ongarde(liste1,liste2)
algorithme en Français:
on a une liste d’immeubles. on va demander à l’ordinateur de nous faire cela:
x=[5,2,6] donc n=3
2^ 3= 8 suites sont possibles
->montre toutes les sous suites
[] 0,0,0 k=0
[5] 1,0,0 k=4
[2] 0,1,0 k=2
[6] 0,0,1 k=1
[5,2] 1,1,0 k=6
[5,6] 1,0,1 k=5
[2,6] 0,1,1 k=3
[5,2,6] 1,1,1 k=7
(nous avons cet ordre, mais l'ordinateur va partir
de k=0, puis 1 jusqu'à 7.)
lorsqu’il a ça, il va regarder avec l’expression booléenne si la liste est croissante ou pas et va donc dire ‘true’ si elle l’est et ‘false’ si elle ne l’es pas. On va ensuite lui demander de garder les listes ‘true’ et choisir la plus longue.