Résolution de problème 2

Voici le programme pour réaliser les exercices 1, 2 et 3 :

import numpy as np
suiteImmeubles=[5,1,8,2,7,6,10,3,9,11]
sousSuiteImmeubles=[1,2,7,9,11]

def croissante(suite:list)->bool:
    """renvoi True si la liste est croissante False sinon"""
    for i in range(len(suite)-1):
        if suite[i]>=suite[i+1]:
            return False
    return True

def sous_suite(x:list,k:int)->list:
    """ n est la longueur de la suite x 
        l est le nombre de sous suites
        """      
    n=len(x)
    l=2**n
    a=list(np.binary_repr(k, width=n))
    b=[]
    for j in range(n):
        if a[j]=='1':
            b.append(int(x[j]))
    return b
    
suiteImmeubles=[1,2,6,3]
for l in range(2**(len(suiteImmeubles))):

  b=sous_suite(suiteImmeubles,l)
  print(l,";",b)

La fonction croissante sert à déterminer si la liste est croissante ou pas.

La fonction sous_suite permet de calculer le nombre total de sous suite possible avec les valeurs disponibles.

Et le dernier programme est un programme de test pour savoir si le dernier programme fonctionne ou pas.

No Responses

Leave a Reply

Your email address will not be published. Required fields are marked *