diff --git a/representation_construits/chapitre_1/td/correction.ipynb b/representation_construits/chapitre_1/td/correction.ipynb index 1a72bd5..2c03423 100644 --- a/representation_construits/chapitre_1/td/correction.ipynb +++ b/representation_construits/chapitre_1/td/correction.ipynb @@ -275,7 +275,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -496,7 +496,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -518,14 +518,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], - "source": "# Question 2\ndef colonne(matrice, indice):\n '''\n Obtient une liste comportant l'ensemble des valeurs de la colonne indice de la matrice\n :param matrice: (list) une matrice\n :param indice: (int) un entier\n :return: (list) une liste de valeurs de la colonne indice\n :doctest:\n >>> colonne([[1, 2],[3, 4]], 0)\n [1, 3]\n >>> colonne([[1, 2],[3, 4]], 1)\n [2, 4]\n '''\n return [matrice[i][indice] for i in range(len(matrice))]" + "source": [ + "# Question 2\n", + "def colonne(matrice, indice):\n", + " '''\n", + " Obtient une liste comportant l'ensemble des valeurs de la colonne indice de la matrice\n", + " :param matrice: (list) une matrice\n", + " :param indice: (int) un entier\n", + " :return: (list) une liste de valeurs de la colonne indice\n", + " :doctest:\n", + " >>> colonne([[1, 2],[3, 4]], 0)\n", + " [1, 3]\n", + " >>> colonne([[1, 2],[3, 4]], 1)\n", + " [2, 4]\n", + " '''\n", + " return [matrice[i][indice] for i in range(len(matrice))]" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -546,7 +561,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -597,10 +612,59 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], - "source": "def est_magique(matrice):\n '''\n Indique si le carré est magique ou non\n :param matrice: (list) un carré d'entiers\n :return: (bool) True si les sommes de chaque ligne, colonne et diagonale sont égales.\n :doctest:\n >>> est_magique([[2, 7, 6], [9, 5, 1], [4, 3, 8]])\n True\n >>> est_magique([[2, 7, 6], [9, 1, 5], [4, 3, 8]])\n False\n >>> est_magique([[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]])\n True\n '''\n constante = somme(ligne(matrice, 0))\n \n # Vérification des lignes\n for i in range(1, len(matrice)):\n if somme(ligne(matrice, i)) != constante:\n return False\n \n # Vérification des colonnes\n for i in range(len(matrice[0])):\n if somme(colonne(matrice, i)) != constante:\n return False\n \n # Vérification des diagonales\n if somme(diagonale_nord_ouest(matrice)) != constante:\n return False\n if somme(diagonale_nord_est(matrice)) != constante:\n return False\n \n return True" + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def est_magique(matrice):\n", + " '''\n", + " Indique si le carré est magique ou non\n", + " :param matrice: (list) un carré d'entiers\n", + " :return: (bool) True si les sommes de chaque ligne, colonne et diagonale sont égales.\n", + " :doctest:\n", + " >>> est_magique([[2, 7, 6], [9, 5, 1], [4, 3, 8]])\n", + " True\n", + " >>> est_magique([[2, 7, 6], [9, 1, 5], [4, 3, 8]])\n", + " False\n", + " >>> est_magique([[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]])\n", + " True\n", + " '''\n", + " constante = somme(ligne(matrice, 0))\n", + " \n", + " # Vérification des lignes\n", + " for i in range(1, len(matrice)):\n", + " if somme(ligne(matrice, i)) != constante:\n", + " return False\n", + " \n", + " # Vérification des colonnes\n", + " for i in range(len(matrice[0])):\n", + " if somme(colonne(matrice, i)) != constante:\n", + " return False\n", + " \n", + " # Vérification des diagonales\n", + " if somme(diagonale_nord_ouest(matrice)) != constante:\n", + " return False\n", + " if somme(diagonale_nord_est(matrice)) != constante:\n", + " return False\n", + " \n", + " return True\n", + " \n", + "\n", + "matrice = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]\n", + "matrice_2 = [[16,3,2,13], [5,10,11,8], [9,6,7,12], [4,15,14,1]]\n", + "est_magique(matrice_2)" + ] }, { "cell_type": "markdown", @@ -896,9 +960,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.13.11" } }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +}