Partage
  • Partager sur Facebook
  • Partager sur Twitter

programe de matrice

    15 juin 2021 à 17:58:39

    comment Écrire un programme en langage python qui lit une matrice carrée de réel et de taille donnée par l'utilisateur et affiche si cette matrice est triangulaire inférieur ou non Une matrice est triangulaire inférieur si toutes les valeurs au-dessus de la diagonale sont égales à zéro  M= 12  0   0    0       10  5   0    0       36  6   45  0       26  20 15 28

    • Partager sur Facebook
    • Partager sur Twitter
      15 juin 2021 à 18:36:31

      Pour construire la matrice je te laisse voir le code. Les éléments de la matrice sont numérotés en ligne-colonne pour que tu comprennes.

      In [1]: from pprint import pprint
      
      In [2]: taille_matrice = 5
      
      In [3]: mat = [[i*10+j for j in range(taille_matrice)] for i in range(taille_matrice)]
      
      In [4]: pprint(mat)
      [[0, 1, 2, 3, 4],
       [10, 11, 12, 13, 14],
       [20, 21, 22, 23, 24],
       [30, 31, 32, 33, 34],
       [40, 41, 42, 43, 44]]

      Pour savoir si elle est triangulaire, il faudra parcourir soit le triangle du haut soit le triangle du bas dont je te laisse deviner les coordonnées ...

      -
      Edité par Nephthys 15 juin 2021 à 18:43:25

      • Partager sur Facebook
      • Partager sur Twitter
        16 juin 2021 à 7:07:25

        Pas certain que la réponse soit appropriée. Je ne connais pas le PO et ne peux pas présumer de ses connaissances en Python.
        Voici un lien qui pourrait être utile:
        https://courspython.com/tableaux-numpy.html
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          16 juin 2021 à 8:35:38

          Nephthys a écrit:

          Pour savoir si elle est triangulaire, il faudra parcourir soit le triangle du haut soit le triangle du bas dont je te laisse deviner les coordonnées ...


          D'après l'énoncé on parcourt seulement le triangle supérieur.
          • Partager sur Facebook
          • Partager sur Twitter

          Python c'est bon, mangez-en. 

            16 juin 2021 à 18:01:25

            Je me demande si MohamedOuzaa sait comment créer une matrice en Python et comment l'utiliser.
            Si on a appris l'algèbre linéaire, on se représente une matrice comme une grille de nombres disposés en lignes et en colonnes.
            On a repris en programmation ces termes de lignes et de colonnes bien que les informations ne sont pas placées de cette façon en mémoire.
            En effet, la mémoire est linéaire et les informations sont placées à la suite de façons diverses suivant le langage et l'implémentation.
            Dans des langages comme C, on peut réserver l'espace sans devoir y placer des valeurs dès le départ.
            Ainsi, une matrice 10 x 10 sera déclarée et définie comme suit:
            float matrix[10][10];
            On a réservé 100 cases de 4 octets pour la matrice mais on n'y a rien placé.
            En Python, on ne peut réserver de l'espace sans y mettre de valeur. Les matrices sont généralement représentées comme des listes de listes.
            Chaque sous-liste représente une ligne.
            Si L est le nombre de lignes et C est le nombre de colonnes, on fera:
            matrix = [[0]*C]*L
            Pour une matrice 4 x 4 on aura:
            [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
            Matrix[l] est une liste représentant une ligne, et matrix[l][c] est l'élément de la colonne c sur la ligne l.
            En Python comme dans la plupart des langages d'ailleurs, les numéros de lignes et de colonnes commencent à 0.
            Il faudra ensuite placer les bonnes valeurs dans la matrice et faire les opérations appropriées.
            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              16 juin 2021 à 18:23:21

              PierrotLeFou a écrit:


              Si L est le nombre de lignes et C est le nombre de colonnes, on fera:
              matrix = [[0]*C]*L


              Surtout pas, cf. ici par exemple.
              • Partager sur Facebook
              • Partager sur Twitter
                16 juin 2021 à 19:22:25

                C'est le même objet qui est répété? Quand on le change, on le change pour tout le monde?
                Je reprend l'exemple correct de ta doc:
                >>> matrix=[[0 for j in range(4)] for i in range(4)]                                                                   
                >>> matrix                                                                                                             
                [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]                                                               
                >>> matrix[0][2]=42                                                                                                    
                >>> matrix                                                                                                             
                [[0, 0, 42, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
                • Partager sur Facebook
                • Partager sur Twitter

                Le Tout est souvent plus grand que la somme de ses parties.

                  16 juin 2021 à 19:43:09

                  PierrotLeFou a écrit:

                  C'est le même objet qui est répété? Quand on le change, on le change pour tout le monde?


                  Oui. Ici, comme 0 est immuable, on peut aussi s'autoriser à utiliser l'opérateur * dans la boucle interne :

                  C=2
                  L=3
                  
                  M=[[0]*C for _ in range(L)]
                  M[0][0]=42
                  print(M)
                  [[42, 0], [0, 0], [0, 0]]




                  -
                  Edité par PascalOrtiz 16 juin 2021 à 19:48:44

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 juin 2021 à 4:05:18

                    Il semble que MohamedOuzaa ne se soit pas reconnecté.
                    C'est donc moi qui va profiter de tes enseignements. :)
                    autre illustration que l'objet répété est le même:
                    >>> l=[0]*3                                                                                                            
                    >>> l                                                                                                                  
                    [0, 0, 0]                                                                                                              
                    >>> l[0]=3                                                                                                             
                    >>> l                                                                                                                  
                    [3, 0, 0]                                                                                                              
                    >>> m=[l for _ in range(4)]                                                                                            
                    >>> m                                                                                                                  
                    [[3, 0, 0], [3, 0, 0], [3, 0, 0], [3, 0, 0]]                                                                           
                    >>> m[0][0]=4                                                                                                          
                    >>> m                                                                                                                  
                    [[4, 0, 0], [4, 0, 0], [4, 0, 0], [4, 0, 0]]
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le Tout est souvent plus grand que la somme de ses parties.

                      17 juin 2021 à 11:38:02

                      Oui, ce qui peut être troublant. Pour le coup, ici, [l for _ in range(4)] se comporte comme [l]*4 (au passage, je préfère utiliser plutôt des L majuscules que l qui ressemble trop au chiffre 1).
                      • Partager sur Facebook
                      • Partager sur Twitter

                      programe de matrice

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown