Loading [MathJax]/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js

Matrices : inverser zéros et uns

Question 1 :

Compléter la fonction inverser_0_et_1 qui :

  • prend en paramètres une matrice mat d'entiers égaux à 0 ou à 1,

  • mute mat afin d'en inverser toutes les valeurs : les 0 sont transformés en 1 et les 1 sont transformés en 0.

Entrée[ ]:
Solution
def inverser_0_et_1(mat):
    for lig in range(len(mat)):
        for col in range(len(mat[0])):
            if mat[lig][col] == 0:
                mat[lig][col] = 1
            else:
                mat[lig][col] = 0

Question 2 :

Tester votre fonction grâce aux tests ci-dessous.

Entrée[6]:

Question 3 (facultative) :

Parmi les formules suivantes, laquelle transforme 0 en 1 et transforme 1 en 0 ?

  • f:x3×x

  • g:x5+x

  • h:x1x

Solution

Parmi les formules précédentes, celle qui transforme 0 en 1 et réciproquement est la formule h.

Question 4 (facultative) :

Modifier la fonction inverser_0_et_1 afin de remplacer les lignes 4 à 7 (instructions conditionnelles) par une seule ligne de code.

Est-ce que le code vous semble plus clair avec cette modification ?

Solution
def inverser_0_et_1(mat):
    for lig in range(len(mat)):
        for col in range(len(mat[0])):
            mat[lig][col] = 1 - mat[lig][col]
Solution

Avec cette modification je trouve, ce qui est subjectif, que le code est moins clair (vous aviez le droit de répondre que vous trouviez cela plus clair).