{"id":2817,"date":"2025-05-15T12:46:38","date_gmt":"2025-05-15T10:46:38","guid":{"rendered":"https:\/\/labodemaths.fr\/WordPress3\/?p=2817"},"modified":"2025-05-20T11:05:37","modified_gmt":"2025-05-20T09:05:37","slug":"nsi-pb-du-voyageur-de-commerce","status":"publish","type":"post","link":"https:\/\/labodemaths.fr\/WordPress3\/nsi-pb-du-voyageur-de-commerce\/","title":{"rendered":"NSI: pb du voyageur de commerce"},"content":{"rendered":"\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/06\/Probleme-du-voyageur-de-commerce.pdf\">Probleme-du-voyageur-de-commerce<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/06\/Probleme-du-voyageur-de-commerce.pdf\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<p>TP : <br>1. T\u00e9l\u00e9charger le fichier csv suivant<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/06\/donnes_villes.csv\">donnes_villes<\/a><a href=\"https:\/\/labodemaths.fr\/WordPress3\/wp-content\/uploads\/2022\/06\/donnes_villes.csv\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<p>2. Copier et coller le code python suivant dans un fichier voyageur_commerce.py situ\u00e9 dans le m\u00eame dossier que le pr\u00e9c\u00e9dent fichier csv<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def ouvrir_donnees():\n    fichier = open(\"donnes_villes.csv\", \"r\")\n    donnees = fichier.read()\n    donnees = donnees.replace (\",\", \".\").split(\"\\n\")\n    donnees=&#91; t.strip (\"\\r\\n \").split (\";\") for t in donnees ]\n    fichier.close()\n    return donnees\n<\/code><\/pre>\n\n\n\n<p>3. Etudier le format de donn\u00e9es<\/p>\n\n\n\n<p>4. Ecrire une fonction permettant de d\u00e9terminer la distance entre 2 villes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><meta charset=\"utf-8\">def distance(ville1,ville2):\n<\/code><\/pre>\n\n\n\n<p>5. Ecrire une fonction permettant de d\u00e9terminer le meilleur trajet pour relier diff\u00e9rentes villes figurant dans les donn\u00e9es.<\/p>\n\n\n\n<p>6. Utiliser le module folium pour placer les villes et tracer le trajet.<\/p>\n\n\n\n<p>Proposition de correction<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def ouvrir_donnees():\r\n    fichier = open(\"donnes_villes.csv\", \"r\")\r\n    donnees = fichier.read()\r\n    donnees = donnees.replace (\",\", \".\").split(\"\\n\")\r\n    donnees=&#91; t.strip (\"\\r\\n \").split (\";\") for t in donnees ]\r\n    fichier.close()\r\n    return donnees\r\ndonnees=ouvrir_donnees()\r\n\r\ndef indice(nom_ville):\r\n    for i in range(len(donnees)):\r\n        if nom_ville==donnees&#91;i]&#91;0]:\r\n            return i\r\n    return None\r\n\r\ndef distance(ville1,ville2):\r\n    '''\r\n    >>>distance(\"Nantes\",\"Strasbourg\")\r\n    865\r\n    >>>distance(\"Caen\",\"Rennes\")\r\n    185\r\n    '''\r\n    imin=min(indice(ville1),indice(ville2))\r\n    imax=max(indice(ville1),indice(ville2))\r\n    return int(donnees&#91;imax]&#91;3+imin])\r\n\r\nvilles=&#91;\"Lille\",\"Caen\",\"Marseille\",\"Saint-Etienne\",\r\n        \"Paris\",\"Brest\",\"Toulouse\",\"Strasbourg\",\r\n        \"Le Havre\",\"Lens\"]\r\n\r\ndef meilleur_trajet(villes):\r\n    trajet=&#91;villes&#91;0]]\r\n    villes_restantes=villes.copy()\r\n    del(villes_restantes&#91;0])\r\n    while len(villes_restantes)!=0:\r\n        dmin=distance(trajet&#91;-1],villes_restantes&#91;0])\r\n        ville_plus_proche=villes_restantes&#91;0]\r\n        for ville in villes_restantes:\r\n            if distance(ville,trajet&#91;-1]) &lt;dmin:\r\n                dmin=distance(ville,trajet&#91;-1])\r\n                ville_plus_proche=ville\r\n        villes_restantes.remove(ville_plus_proche)\r\n        trajet.append(ville_plus_proche)\r\n        print(trajet,villes_restantes)\r\n    return trajet\r\n        \r\n    \r\n   \r\n    \r\n        \r\n    \r\n    \r\n\n        \n    \n   \n    \n        \n    \n    \n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>TP : 1. T\u00e9l\u00e9charger le fichier csv suivant 2. Copier et coller le code python&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/labodemaths.fr\/WordPress3\/nsi-pb-du-voyageur-de-commerce\/\">Read the post<span class=\"screen-reader-text\">NSI: pb du voyageur de commerce<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":1972,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[57],"tags":[],"_links":{"self":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2817"}],"collection":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/comments?post=2817"}],"version-history":[{"count":3,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2817\/revisions"}],"predecessor-version":[{"id":2823,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/posts\/2817\/revisions\/2823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media\/1972"}],"wp:attachment":[{"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/media?parent=2817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/categories?post=2817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labodemaths.fr\/WordPress3\/wp-json\/wp\/v2\/tags?post=2817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}