La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Introduction à l’algorithmique Définition et formulation d’un algorithme. Applications à différents types de problèmes. Opérations élémentaires. Choix.

Présentations similaires


Présentation au sujet: "1 Introduction à l’algorithmique Définition et formulation d’un algorithme. Applications à différents types de problèmes. Opérations élémentaires. Choix."— Transcription de la présentation:

1 1 Introduction à l’algorithmique Définition et formulation d’un algorithme. Applications à différents types de problèmes. Opérations élémentaires. Choix d’un algorithme. Efficacité d’un algorithme. Analyse en pire cas et analyse en moyenne. Décomposition fonctionnelle : identification des tâches principales à accomplir et découpage en sous-tâches. Méthodologie de résolution de problème.

2 2 Définition d’un algorithme Procédure de calcul non ambigüe, finie, déterministe et exprimée en termes d’instructions élémentaires exécutables. Méthode de solution d’un problème en termes d’opérations élémentaires exécutables. Aucune place pour l’interprétation, l’intuition et la créativité. Différents algorithmes peuvent résoudre un même problème et différents programmes peuvent servir à décrire un même algorithme. Le choix d’un algorithme pour résoudre un problème peut dépendre de plusieurs facteurs.

3 3 Aucune ambiguïté : L’exécution d’un algorithme avec les mêmes données d’entrée doit toujours réaliser exactement les mêmes tâches et fournir les mêmes résultats. Exemple : À chaque jour, miser tout votre avoir sur le cheval le plus coté jusqu’à ce que vous soyez millionnaire ou ruiné. Cela dépend du jour où vous commencez à miser. Cela dépend du montant d’argent que vous avez ce jour-là. Fini : L’exécution d’un algorithme nécessite un nombre fini d’opérations élémentaires. Exemple : Deviner un nombre entier positif, négatif ou nul. Deviner un nombre réel. Évaluer la racine carrée du nombre 2. Définition d’un algorithme On doit tout spécifier dans le moindre détail. Absence de mémoire de son expérience passée. Déterministe : Exemple : Explications pour trouver une maison de campagne. Imprimer les résultats d’un programme résolvant un mot-mystère.

4 4 Définition d’une opération élémentaire Lors de la conception d’un algorithme, le niveau de détail doit être bien défini ou encore, le jeu d’instructions ou d’opérations élémentaires disponible. Le temps d’exécution d’une opération élémentaire est borné par une constante qui ne dépend pas des données à manipuler. Exemple : Tri d’une suite de n entiers. Addition de 2 entiers. Valeur absolue d’un nombre. OUI NON

5 5 Un peu d’histoire … Entre 400 et 300 avant Jésus-Christ, un mathématicien grec Euclide a inventé un algorithme qui détermine le plus grand commun diviseur de 2 entiers positifs. Il s’agit du premier algorithme non trivial. Le mot algorithme est dérivé du nom d’un mathématicien de Perse, Mohammed alKhowârizmî (en latin Algorismus), qui a vécu au 9 ième siècle. Contribution : algorithmes pour additionner, soustraire, multiplier ou diviser des nombres décimaux.

6 6 Composantes de base d’un algorithme Lecture d’une donnée. Écriture d’une donnée. Test qui vérifie si une condition est remplie avec une action à entreprendre sur la base du résultat de ce test. Répétition ou itération d’une suite d’étapes élémentaires. Conservation d’une donnée en mémoire. Exemple : 1. Lire un entier positif n. 2. Conserver en mémoire la valeur 0 identifiée par somme. Affichage de la somme des éléments d’une suite d’entiers. 3. Tant et aussi longtemps que les n nombres ne sont pas lus 3.1. Lire un entier Ajouter cet entier à la valeur identifiée par somme. 4. Écrire la valeur identifiée par somme.

7 7 Exemple – Tri d’une pile de feuilles 1. Trier une grosse pile de feuilles sur un petit bureau avec en main uniquement un stylo. Placer la pile de feuilles à gauche du bureau. 2. Enlever le capuchon du stylo. 3. Tant et aussi longtemps que la pile de feuilles de gauche contient au moins 2 feuilles alors 3.1. Choisissez les 2 premières feuilles de la pile Si les 2 feuilles ne sont pas en ordre, remettre le capuchon du stylo Ordonner les 2 feuilles Prendre la feuille du dessus de la pile de gauche et la placer dans la pile de droite. 4. Placer la dernière feuille de la pile de gauche dans la pile de droite.

8 8 Exemple – Tri d’une pile de feuilles (suite) 5. Tant et aussi longtemps que la pile de feuilles de droite n’est pas vide alors 5.1. Prendre la feuille du dessus de la pile de droite et la placer dans la pile de gauche. 6. Si le capuchon du stylo est remis alors retourner à l’étape Terminé.

9 9 Exemple – Lister les indices d’un sac de billes 1. { Initialisation.} Vous avez en main 3 sacs, l’un est rempli de billes numérotées. Les 2 autres sont vides. But : lister les indices des billes en ordre décroissant. Le sac # 1 est rempli; les sacs # 2 et #3 sont vides. 2. { À l’aide des sacs # 1 et #2 uniquement, conservez dans la main gauche la bille d’indice le plus élevé tandis que les autres billes auront été transférées du sac # 1 au sac # 2.} 3. Imprimer l’indice de la bille de la main gauche. 4. Placer la bille d’indice le plus élevé (de la main gauche) dans le sac # Si le sac # 2 n’est pas vide alors 5.1. Interchanger les sacs # 1 et # Retourner à l’étape # 2.

10 10 Lister les indices d’un sac de billes (suite) 2. { À l’aide des sacs # 1 et #2 uniquement, conservez dans la main gauche la bille d’indice le plus élevé tandis que les autres billes seront transférées du sac # 1 au sac # 2.} 2.1. Prendre une bille du sac # 1 dans la main gauche Tant et aussi longtemps que le sac # 1 n’est pas vide alors Prendre une bille du sac # 1 dans la main droite Si l’indice de la bille de la main gauche est plus petit que l’indice de la bille de la main droite alors échanger les 2 billes des mains gauche et droite Placer la bille de la main droite dans le sac # 2.

11 11 Remplacement d’une ampoule grillée par un robot ménager 1. { Enlever l’ampoule grillée.} 2. { Mettre en place une nouvelle ampoule.} 1.1 Placer l’escabeau sous l’ampoule grillée. 1.2 { Grimper jusqu’à ce qu’on puisse atteindre l’ampoule.} Tant et aussi longtemps que nous n’avons pas atteint l’ampoule gravir l’escabeau d’un échelon. 1.3 { Dévisser l’ampoule jusqu’à ce qu’elle se dégage.} Tant et aussi longtemps que l’ampoule ne se libère pas dévisser l’ampoule d’un tour. 2.1 Choisir une nouvelle ampoule de même puissance. 2.2 Aligner le culot de l’ampoule et le réceptacle du lustre.

12 12 Remplacement d’une ampoule grillée par un robot ménager (suite) 2.3 { Vissez l’ampoule à fond.} Tant et aussi longtemps que l’ampoule n’est pas vissé fermement visser l’ampoule d’un tour. 2.4 { Descendre de l’escabeau.} Tant et aussi longtemps que vous n’avez pas atteint le sol descendre l’escabeau d’un échelon.

13 13 Multiplication de 2 entiers positifs (méthode à la russe) 1. Écrire le multiplicateur et le multiplicande l’un à côté de l’autre. multiplicateur multiplicande Tant et aussi longtemps que le nombre sous le multiplicateur est > Diviser par 2 le nombre sous le multiplicateur, sans tenir compte du reste éventuel. 3.2 Doubler par addition le nombre sous le multiplicande. 2. Si le multiplicateur est impaire alorsécrire comme résultat la valeur du multiplicande à droite de la colonne multiplicande sinon écrire comme résultat 0 à droite de la colonne multiplicande multiplicateur multiplicande résultat Si le multiplicateur est impaire alorsécrire comme résultat la valeur du multiplicande à droite ajoutée au résultat précédent sinonécrire comme résultat la valeur précédente.

14 14 Multiplication de 2 entiers positifs (suite) multiplicateur multiplicande résultat Écrire le résultat. résultat 855 Note :Les opérations élémentaires sont : multiplication et division par 2, addition.

15 15 Algorithme qui vérifie si un nombre entier positif est premier 1. Lire un entier positif n. 2. Pour chaque valeur de i entre 2 et  n 2.1 Si le reste de la division de n par i est égale à 0 (i est facteur de n) alors Écrire que le nombre n n’est pas premier L’algorithme prend fin. 3. Écrire que le nombre n est premier. Démonstration d’Euclide en grec que l’ensemble des nombres premiers est infini. 4. L’algorithme prend fin.

16 16 Algorithme qui vérifie si une année est bissextile Une année est bissextile tous les 400 ans; les siècles ne sont pas bissextiles et une année sur 4 est bissextile. 1. Lire une année n. 2. Si n possède comme facteur 400 alors 2.1 Écrire que n est une année bissextile. 2.2 L’algorithme prend fin. 3. Si n possède comme facteur 100 alors 3.1 Écrire que n n’est pas une année bissextile. 3.2 L’algorithme prend fin. 4. Si n possède comme facteur 4 alors écrire que n est une année bissextile. sinon écrire que n n’est pas une année bissextile. 5. L’algorithme prend fin. Les femmes étaient censées profiter des années bissextiles pour faire la grande demande.

17 17 Estimé de . Un joueur de dards se pratique sur une surface carrée où chaque côté est de longueur c. Un cercle de rayon r est inscrit dans ce carré. Son entraîneur constate qu’il ne rate jamais la surface carrée mais ses dards sont répartis uniformément sur le carré. Voici un bon moyen d’estimer , se dit-il en lui-même car # d’essais à l’intérieur du cercle=  # total d’essais4

18 18 Estimé de . 1. Mémoriser dans ECHEC la valeur Mémoriser dans REUSSITE la valeur Tant et aussi longtemps que le joueur n’a pas terminé sa pratique, si le lancer est une réussite alors augmenter la valeur de REUSSITE de 1 alors augmenter la valeur de ECHEC de Écrire « Voici l’estimé : ». 5. Écrire la valeur de l’expression : 4 * REUSSITE / (REUSSITE + ECHEC).

19 19 Jour d’élection Dans un pays où le baobab est roi, il existe 4 partis politiques, le Bleu, le VERT, le Rouge et le Blanc. C’est jour d’élection, chaque électeur doit classer le candidat de chaque parti en commençant par le préféré et en terminant avec celui qui est rejeté avec le plus de vigueur. Lorsqu’un candidat est choisi en première position, il gagne 3 points; lorsqu’un candidat est choisi en deuxième position, il gagne 2 points; lorsqu’un candidat est choisi en troisième position, il gagne 1 point; lorsqu’un candidat est choisi en quatrième position, il gagne aucun point. Déterminer le parti qui prendra le pouvoir dans ce pays d’Afrique.

20 20 Jour d’élection (choix d’un président) 1. Conserver dans Bleu la valeur 0. Conserver dans Blanc la valeur 0. Conserver dans Rouge la valeur 0. Conserver dans Vert la valeur Tant et aussi longtemps qu’il reste des bulletins de vote dans les boîtes de scrutin, procédez comme suit : 2.1 Prendre un bulletin de vote. 2.2 Ajouter 3 points au parti en 1 e position. 2.3 Ajouter 2 points au parti en 2 ième position. 2.4 Ajouter 1 point au parti en 3 ième position. 3. Si le nombre de points du parti Bleu > le nombre de points du parti Vert alors mémoriser dans Gagnant le nombre de points du parti Bleu sinon mémoriser dans Gagnant le nombre de points du parti Vert. 4. Si Gagnant < le nombre de points du parti Rouge alors mémoriser dans Gagnant le nombre de points du parti Rouge.

21 21 Jour d’élection (choix d’un président) 5. Si Gagnant < le nombre de points du parti Blanc alors mémoriser dans Gagnant le nombre de points du parti Blanc. 6. Conserver dans Nombre_de_gagnants la valeur Si Gagnant est égale au nombre de points du parti Blanc alors ajouter 1 à Nombre_de_gagnants sinon le candidat Blanc est éliminé. 8. Si Gagnant est égale au nombre de points du parti Bleu alors ajouter 1 à Nombre_de_gagnants sinon le candidat Bleu est éliminé. 11. Si Nombre_de_gagnants > 1 alors un 2 ième scrutin est effectué avec les candidats non éliminés sinon le candidat non éliminé est le nouveau président de ce pays. 9. Si Gagnant est égale au nombre de points du parti Vert alors ajouter 1 à Nombre_de_gagnants sinon le candidat Vert est éliminé. 10. Si Gagnant est égale au nombre de points du parti Vert alors ajouter 1 à Nombre_de_gagnants sinon le candidat Vert est éliminé.

22 22 Algorithme pour résoudre une équation du second degré Il s’agit de trouver les racines si elles existent de l’équation a x 2 + b x + c = Lire les coefficients a, b et c. 2. Si a est égale à 0 alors Écrire " Nous avons une équation du premier degré où b doit être différent de 0. La racine est : ". Calcul de - c / b. Écrire le résultat du calcul Si a est différent de 0 alors Calcul du discriminant b 2 – 4 a c. Mémoriser dans DELTA la valeur du résultat. Si DELTA est plus petit que 0 alorsécrire " Il n’existe pas de racines réelles. " sinon calcul de (– b +  DELTA) / (2 a). mémoriser dans RACINE1 le résultat du calcul. calcul de (– b -  DELTA) / (2 a). mémoriser dans RACINE2 le résultat du calcul. écrire " Les racines réelles sont : ". écrire les valeurs de RACINE1 et RACINE2.

23 23 Calcul de la moyenne et de la variance des notes des étudiants Soient x 1, x 2, …, x n les notes obtenues à un examen en Mathématiques du Ministère par des étudiants de sec. IV, il s’agit de calculer les 2 mesures suivantes : n Moyenne arithmétique (échantillonnale) :  x= 1  x i ni = 1 n Variance échantillonnale (mesure de dispersion) : s 2 = 1  (x i -  x) 2 n-1i = 1 Le calcul de la variance échantillonnale crée une difficulté car  x n’est pas connu à priori. Solution : Réécrire s 2 comme suit : n s 2 =  x i 2 - n  x 2 i = 1n - 1

24 24 Algorithme permettant de calculer la moyenne et la variance des notes 1. Mémoriser dans n la valeur Mémoriser dans SOMME la valeur Mémoriser dans CARRE la valeur Tant et aussi longtemps que des notes n’ont pas été considérées 4.1 Lire une note dans x. 4.2 Ajouter à SOMME la valeur de x. 4.3 Ajouter à CARRE la valeur de x*x. 4.4 Ajouter à n la valeur de Écrire " La moyenne échantillonnale est : ". 6. Écrire SOMME / n. 7. Écrire " La variance échantillonnale est : ". 8. Écrire la valeur de l’expression : (CARRE – SOMME * SOMME / n) / (n - 1).

25 25 Recherche le no. de la page renfermant un mot dans un dictionnaire 1. Lire le mot m à rechercher. 2. Lire le nombre n de pages du dictionnaire. Supposons que les pages du dictionnaire sont numérotées de 1 à n et que le mot recherché existe dans le dictionnaire. 3. Se positionner à la première page du dictionnaire. 4. Si m est plus petit ou égal au dernier mot de la page courante alors 4.1 Écrire le numéro de la page courante. 4.2 L’algorithme prend fin. 5. Se positionner à la page suivante dans le dictionnaire. 6. Retourner à l’étape 4. ALGORITHME SÉQUENTIEL

26 26 Recherche le no. de la page renfermant un mot dans un dictionnaire Supposons que les pages du dictionnaire sont numérotées de 1 à n et que le mot recherché existe dans le dictionnaire. ALGORITHME DE RECHERCHE DICHOTOMIQUE 1. Lire le mot m à rechercher. 2. Lire le nombre n de pages du dictionnaire. 3. Mémoriser dans i la valeur de Mémoriser dans j la valeur de n. 5. Tant et aussi longtemps que i < j faire 5.1 Calcul de [(i + j) / 2] où [x] désigne la partie entière de x. 5.2 Mémoriser ce résultat dans k. 5.3 Si m < 1 e mot de la page k alors mémoriser k–1 dans j. 5.4 Si m  dernier mot de la page k alors mémoriser k dans i et j. 5.5 Si m > dernier mot de la page k alors mémoriser k+1 dans i. 6. Écrire la valeur conservée dans i.

27 27 Efficacité d’un algorithme Il existe habituellement plusieurs algorithmes pour résoudre un problème. Il faut choisir habituellement celui qui exige le moins de ressources pour trouver la solution à votre problème. Qu’entend-on par ressource ? Le temps nécessaire pour trouver la solution. La quantité d’information à mémoriser. Le meilleur algorithme est-il toujours le même peu importe les données du problème ? Non, car certains algorithmes ont un bon comportement lorsque le problème est de petite taille tandis que leur performance est réduite lorsque la taille du problème augmente sensiblement. L’inverse est aussi vrai. Lequel choisir ? Exemple :Les algorithmes de recherche précédents sont-ils aussi efficaces avec un feuillet de quelques pages vs un gros dictionnaire ?

28 28 Comment choisir l’algorithme le plus efficace ? 1 e approche : approche empirique Construire chaque algorithme d’intérêt permettant de résoudre notre problème. Appliquer à chaque algorithme différentes données du problème tout en faisant varier la taille du problème. Sélectionner l’algorithme qui nous semble le plus performant en fonction des résultats obtenus. Exemple : Considérer les algorithmes de recherche précédents avec des dictionnaires de différentes tailles ainsi que différents mots à rechercher. Inconvénient :Il faut implanter et exécuter chaque algorithme sur des données différentes.

29 29 Comment choisir l’algorithme le plus efficace ? 2 ième approche : approche théorique Calculer le nombre d’opérations élémentaires nécessaires à l’algorithme pour résoudre le problème. Avantages : Évite d’implanter des algorithmes inefficaces et ainsi perdre du temps. Évite d’appliquer aux algorithmes différentes données du problème tout en faisant varier la taille du problème. Cette analyse ne dépend pas de l’ordinateur utilisé le cas échéant. Analyse en pire cas : # d’opérations élémentaires nécessaires à l’algorithme pour résoudre le problème dans le pire cas (les données du problème où l’algorithme est le plus coûteux). Analyse en moyenne : # d’opérations élémentaires en moyenne nécessaires à l’algorithme selon la fréquence des données.

30 30 Analyse de l’algorithme de recherche séquentiel dans un dictionnaire 1. Lire le mot m à rechercher. 2. Lire le nombre n de pages du dictionnaire. Supposons que les pages du dictionnaire sont numérotées de 1 à n et que le mot recherché existe dans le dictionnaire. 3. Se positionner à la première page du dictionnaire. 4. Si m est plus petit ou égal au dernier mot de la page courante alors 4.1 Écrire le numéro de la page courante. 4.2 L’algorithme prend fin. 5. Se positionner à la page suivante dans le dictionnaire. 6. Retourner à l’étape 4. # d’opérations élémentaires = (k – 1) + 2 = 3 k + 2 où k désigne le no. de page recherché. Analyse en pire cas : 3 n + 2.Analyse en moyenne* : n / 2. *On suppose que la fréquence des mots recherchés est la même ainsi que le nombre de mots dans chaque page.

31 31 Analyse de l’algorithme de recherche dichotomique dans un dictionnaire 1. Lire le mot m à rechercher. 2. Lire le nombre n de pages du dictionnaire. 3. Mémoriser dans i la valeur de Mémoriser dans j la valeur de n. 5. Tant et aussi longtemps que i < j faire 5.1 Calcul de [(i + j) / 2] où [x] désigne la partie entière de x. 5.2 Mémoriser ce résultat dans k. 5.3 Si m < 1 e mot de la page k alors mémoriser k–1 dans j. Si m  dernier mot de la page k alors mémoriser k dans i et j. 5.5 Si m > dernier mot de la page k alors mémoriser k+1 dans i. 6. Écrire la valeur conservée dans i. # d’opérations élémentaires en pire cas = … =  log 2 n  log 2 n fois 5.4

32 32 Évaluation d’un polynôme de degré n Il s’agit de calculer f(x) = a 0 + a 1 x + a 2 x 2 + … + a n x n pour une valeur de x . 1. { Lecture des données du problème. } 1.1 Lire le degré n du polynôme. 1.2 Pour chaque valeur de i allant de 0 à n lire le coefficient a i. 1.3 Lire la valeur de x. 2. { Calcul de f(x). } 2.1 Mémoriser dans SOMME le coefficient a Pour chaque valeur de j allant de 1 à n Mémorisez dans TERME le coefficient a j Répétez j fois les opérations suivantes : Multiplier TERME par x Mémoriser dans TERME le résultat de la multiplication Additionner la valeur de SOMME à celle de TERME Mémoriser dans SOMME le résultat de l’addition.

33 33 Évaluation d’un polynôme de degré n : analyse de l’algorithme 3. { Écrire la valeur de f(x). } Écrire la valeur mémorisée dans SOMME. Calcul du # d’opérations élémentaires 1. { Lecture des données du problème. } n + 3 opérations de lecture. 2. { Calcul de f(x). } n 1 +  (3 + 2 j) opérations de calcul. j=1 3. { Écrire la valeur de f(x). } 1 opération d’écriture. Total :n n + 5 opérations élémentaires. Algorithme quadratique

34 34 Évaluation d’un polynôme de degré n : Règle de Horner 2. { Calcul de f(x). } 2.1 Mémoriser dans SOMME le coefficient a n. 2.2 Pour chaque valeur de j allant de n-1 à Multiplier SOMME par x Additionner le résultat de la multiplication à a j Mémoriser dans SOMME le résultat de l’addition. Calcul du # d’opérations élémentaires 1. { Lecture des données du problème. } n + 3 opérations de lecture. 2. { Calcul de f(x). } n  3 opérations de calcul. j=0 3. { Écrire la valeur de f(x). } 1 opération d’écriture. Total :4 n + 5 opérations élémentaires. Algorithme linéaire

35 35 Comparaison des deux algorithmes n Courbe linéaire Courbe quadratique # d’opérations élémentaires Cas particulier : n = 1045 vs 155 opérations élémentaires.

36 36 Calcul de x  [a, b]  f(x) = f (une valeur fixée à priori), f étant croissante Il s’agit de calculer l’intervalle [u, v]  [a, b] tel que v – u  ,  étant le degré de précision demandé (une valeur fixée à priori), où il existe un x  [u, v] tel que f(x) = f. a b f x  uv f une fonction croissante Note : Pour qu’il y ait une solution au problème, f(a)  f  f(b).

37 37 Calcul de x  [a, b]  f(x) = f (une valeur fixée à priori), f étant croissante 1. { Initialisation. } Approche séquentielle Lire les valeurs de a, b, f et  > { Recherche de l’intervalle. } 2.1 Mémoriser dans w la valeur de a. 2.2 Tant et aussi longtemps que f(w +  ) < f alors ajouter à w la valeur de . 2.3 Si b > w +  alors écrire l’intervalle [w, w +  ] sinon écrire l’intervalle [w, b]. Total en pire cas :  (b – a) /  opérations élémentaires +  (b – a) /  évaluations de la fonction f.

38 38 Calcul de x  [a, b]  f(x) = f (une valeur fixée à priori), f étant croissante 1. { Initialisation. } Approche binaire Lire les valeurs de a, b, f et  > { Recherche de l’intervalle. } 2.1 Mémoriser dans u et v les valeurs de a et b. 2.2 Mémoriser dans MILIEU la valeur de (u + v) / Calculer f(MILIEU) et conserver dans VALEUR_DE_F le résultat obtenu. 2.4 Si v – u >  alors si VALEUR_DE_F > f alors conserver dans v la valeur de MILIEU sinon conserver dans u la valeur de MILIEU. Retourner à l’étape 2.2. Écrire l’intervalle [u, v] Total :  log 2 ((b – a) /  )  opérations élémentaires +  log 2 ((b – a) /  )  évaluations de la fonction f.

39 39 Comparaison des 2 algorithmes

40 40 Présence d’un mot dans un texte Déterminer si un mot de longueur m se retrouve au moins une fois dans un texte de longueur n (m  n). 1. Pour chaque position i allant de 1 à n – m Mémoriser dans j la valeur de Tant et aussi longtemps que j  m faire Si le (i+j-1) ième caractère du texte est égale au j ième caractère du mot alors augmenter la valeur de j de 1 sinon j prend la valeur m Si j est égale à m + 1 alors Écrire « Il existe au moins une occurrence du mot. » L’algorithme prend fin. 2. Écrire « Le mot ne se retrouve pas dans le texte. ». 3. L’algorithme prend fin.

41 41 Analyse de l’algorithme Total en pire cas : (n – m + 1) (2 + 6m) opérations élémentaires Quelle est la valeur de m pour laquelle la performance de l’algorithme est la moins bonne ? F(m) = (n – m + 1) (2 + 6m)  F ' (m) = 6 (n – m + 1) – (2 + 6m) = 0  6n – 12 m + 4 = 0  m = (3n + 2) / 6.

42 42 Jeu SUDOKU (algorithme difficile à concevoir) Règles du jeu Le point de départ est un tableau de dimension 9 x 9 où chaque case est soit, vide, soit, elle contient un chiffre entre 1 et 9. Exemple : Il s’agit pour jouer de placer un chiffre de 1 à 9 dans chaque case vide. Chaque ligne, chaque colonne et chaque boîte 3 x 3 délimitée par un trait plus épais doivent contenir tous les chiffres de 1 à 9. Chaque chiffre apparaît donc une seule fois dans une ligne, dans une colonne et dans une boîte 3 x 3.

43 43 Jeu KAKURO (algorithme encore plus difficile à concevoir) Solution du jeu


Télécharger ppt "1 Introduction à l’algorithmique Définition et formulation d’un algorithme. Applications à différents types de problèmes. Opérations élémentaires. Choix."

Présentations similaires


Annonces Google