{"id":429,"date":"2022-01-23T18:52:38","date_gmt":"2022-01-23T17:52:38","guid":{"rendered":"http:\/\/yb-isn.fr\/2021\/nsi\/?p=429"},"modified":"2022-01-23T21:01:56","modified_gmt":"2022-01-23T20:01:56","slug":"evaluation-de-temps-dexecution","status":"publish","type":"post","link":"http:\/\/yb-isn.fr\/2021\/nsi\/?p=429","title":{"rendered":"\u00e9valuation de temps d&rsquo;ex\u00e9cution"},"content":{"rendered":"<p><!--more--><\/p>\n\n\n<ol class=\"has-cyan-bluish-gray-background-color has-background\"><li>Cr\u00e9ation de tableaux al\u00e9atoires d&rsquo;entiers<\/li><\/ol>\n\n\n<p><span style=\"text-decoration: underline;\"><strong>Cr\u00e9ation d&rsquo;un tableau t de valeurs al\u00e9atoires \u00e0 trier<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">t=[]\nn=10\nMax=10\nfor i in range(n):\n    t.append(random.randint(0,Max))<\/pre>\n<p><strong><span style=\"text-decoration: underline;\">Mesure de la dur\u00e9e d\u2019ex\u00e9cution d&rsquo;un programme<\/span> <\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">debut=time.time()\nt=[]\nfor i in range(100000):\n    t.append(random.randint(0,10))\nduree=time.time()-debut\nprint(duree)<\/pre>\n<p>\u00e0 quoi correspond la variable debut ? effectuez un test pour justifier la r\u00e9ponse.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Tracer un nuage de points<\/span><\/strong> \u00a0<\/p>\n<p>exemple 10 points de la droite d&rsquo;\u00e9quation y=-2x+10<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">import matplotlib.pyplot as plt\n\nx=[i for i in range(10)]\ny=[-2*xval+10 for xval in x]\n\nplt.scatter(x,y)\nplt.show()<\/pre>\n<p><span style=\"text-decoration: underline;\"><strong>visualiser la duree de cr\u00e9ation d&rsquo;un tableau en fonction de sa longueur n<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">import matplotlib.pyplot as plt\nimport time\nimport random\n\ndef duree_tableau_alea2(n):\n    t=[]\n    debut=time.time()\n    for i in range(n):\n        t.append(random.randint(0,10))\n    duree=time.time()-debut\n    return duree\n\nx=[i*10**5 for i in range(10)]\ny2=[duree_tableau_alea2(val) for val in x]\n\nplt.scatter(x,y2)\nplt.show()<\/pre>\n<p><span style=\"text-decoration: underline;\"><strong>Comparaisons et options pour le trac\u00e9<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">import time\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport random\n\ndef duree_tableau_alea(n):\n    debut=time.time()\n    t=[random.randint(0,10) for i in range(n)]\n    duree=time.time()-debut\n    return duree\n\ndef duree_tableau_alea1(n):\n    debut=time.time()\n    t=list(np.random.randint(10,size=n))\n    duree=time.time()-debut\n    return duree\n\ndef duree_tableau_alea2(n):\n    t=[]\n    debut=time.time()\n    for i in range(n):\n        t.append(random.randint(0,6))\n    duree=time.time()-debut\n    return duree\n\nx=[(i)*10**5 for i in range(5)]\ny=[duree_tableau_alea(val) for val in x]\ny1=[duree_tableau_alea1(val) for val in x]\ny2=[duree_tableau_alea2(val) for val in x]\n\nplt.scatter(x,y, color='coral', linestyle='solid', label='liste en compr\u00e9hension')\nplt.scatter(x,y1, color='navy', linestyle='solid', label='tableau numpy')\nplt.scatter(x,y2, color='green', linestyle='solid', label='liste avec append')\n\nax = plt.gca()\nax.spines['right'].set_color('none')\nax.spines['top'].set_color('none')\nax.xaxis.set_ticks_position('bottom')\nax.spines['bottom'].set_position(('data',0))\nax.yaxis.set_ticks_position('left')\nax.spines['left'].set_position(('data',0))\nplt.title('dur\u00e9e de c\u00e9ation d''un tableau de n valeurs al\u00e9atoires ',color=\"navy\", fontsize=12)\nax = ax.set(xlabel='n ', ylabel='dur\u00e9e (en s)')\nplt.legend(loc='center right');\n\nplt.show()<\/pre>\n<p>\u00a0 \u00a0 \u00a0 \u00a0<\/p>\n\n\n<p class=\"has-cyan-bluish-gray-background-color has-background\">2. Comparaison de tris<\/p>\n\n\n\n<p>A vous de tester annoter et comprendre voire modifier le code ci-dessous<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"godzilla\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import time\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport random\n\ndef tri_insertion(tableau):\n    for i in range(1,len(tableau)):\n        en_cours = tableau[i]\n        j = i\n        #d\u00e9calage des \u00e9l\u00e9ments du tableau }\n        while j>0 and tableau[j-1]>en_cours:\n            tableau[j]=tableau[j-1]\n            j = j-1\n        #on ins\u00e8re l'\u00e9l\u00e9ment \u00e0 sa place\n        tableau[j]=en_cours  \n        \ndef tri_selection(tableau):\n    nb = len(tableau)\n    for en_cours in range(0,nb):    \n        plus_petit = en_cours\n        for j in range(en_cours+1,nb) :\n            if tableau[j] &lt; tableau[plus_petit] :\n                plus_petit = j\n        if min is not en_cours :\n            temp = tableau[en_cours]\n            tableau[en_cours] = tableau[plus_petit]\n            tableau[plus_petit] = temp\n\ndef duree_tris(n):\n    t1=list(np.random.randint(10,size=n))\n    t2=t1.copy()\n    t3=t1.copy()\n    debut=time.time()\n    tri_selection(t1)\n    duree_selection=time.time()-debut\n\n    debut=time.time()\n    tri_insertion(t2)\n    duree_insertion=time.time()-debut\n    debut=time.time()\n    t3.sort()\n    duree_sort=time.time()-debut\n    return duree_selection,duree_insertion,duree_sort\n\nx=[(i)*10**3 for i in range(10)]\n\ny=[duree_tris(val) for val in x]\ny1=[y[i][0] for i in range(10)]\ny2=[y[i][1] for i in range(10)]\ny3=[y[i][2] for i in range(10)]\n\nplt.scatter(x,y1, color='navy', linestyle='solid', label='tri selection')\nplt.scatter(x,y2, color='green', linestyle='solid', label='tri insertion')\nplt.scatter(x,y3, color='red', linestyle='solid', label='tri sort')\nax = plt.gca()\nax.spines['right'].set_color('none')\nax.spines['top'].set_color('none')\nax.xaxis.set_ticks_position('bottom')\nax.spines['bottom'].set_position(('data',0))\nax.yaxis.set_ticks_position('left')\nax.spines['left'].set_position(('data',0))\nplt.title('dur\u00e9e pour trier un tableau de n valeurs al\u00e9atoires ',color=\"navy\", fontsize=12)\nax = ax.set(xlabel='n ', ylabel='dur\u00e9e (en s)')\nplt.legend(loc='upper left');\nplt.show()\n\nprint(y1)\nprint(y2)\nprint(y2)<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/posts\/429"}],"collection":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=429"}],"version-history":[{"count":8,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions"}],"predecessor-version":[{"id":747,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/posts\/429\/revisions\/747"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=\/wp\/v2\/media\/441"}],"wp:attachment":[{"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=429"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yb-isn.fr\/2021\/nsi\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}