-
22
pages
-
Français
-
Documents
Description
Programmation FonctionnellerrannolRécurer du sol au plafondur soufdGilles Enée – LS4illné LUniversité des Antilles Guyaneivité AesyaUn peu de complexiténu xi Quelle est la complexité de (fac n) ?uescolexde n(define (fac n)de (fa(if (zero? n)(ro1(* n (fac (- n 1)))))(fa 1Un peu de complexiténu xi Si on choisit come granularité une opération i ooimné pnentre deux nombres : C’est-à-dire qu’on ntuxb C-du’considère qu’une opération entre deux nombres onreneraneumbquelconques coûte 1 temps de calcul.uequoûtedeul On note C la complexité de n! Ote coité!n Alors AC = C + coul p)!>n n-1 n-1C = C + 1 Cn n-1Sachanntt que C == 0, nous ppouvons eenn déduiirree que :0C = 0+1+1+ … + 1 (n fois)+1 + s)nC = (n) (nOn parle de complexité linéaire.n depleinéUn peu de complexiténu xi Observons les résultats obtenus sur la bons ltbs lamachine :ae (time (fac 4000)) => 32 ((fa00 3 (time (fac 8000)) => 156 ((fa00 1 (time (fac 16000)) => 671 ((fa00> (time (fac 32000)) => 3015((fa00> Est-ce que la progression est linéaire ?squ pes ené ?Un peu de complexiténu xi Pourquoi ?ooi Parce que la granularité réelle est la P q glaet multiplication de deux chiffres et pas de deux mlic duxfrepa dnombres !nre Le nombre de multiplication de deux chiffres Lme iplneuiffrdans le produit de n-1! par n est de l’ordre de dleui-1r ndere(n*log²(n)). D’où :g² D C = C + n log²(n) = Cn l)n n-1 Finalement, ...
-
Publié par
-
Langue
Français