M1 MEEF Second Degré Maths option Info

Dimension: px
Commencer à balayer dès la page:

Download "M1 MEEF Second Degré Maths option Info"

Transcription

1 M1 MEEF Second Degré Maths option Info Algorithmes de tri Benjamin Wack UFR IM2AG, Université Grenoble Alpes mars / 28

2 Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 2 / 28

3 Pourquoi trier Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 3 / 28

4 Pourquoi trier Exemple fondamental en informatique Notion d algorithme Un problème, de multiples algorithmes Certains naturellement itératifs, d autres fondamentalement récursifs Pose même la question des primitives autorisées 4 / 28

5 Pourquoi trier Exemple fondamental en informatique Notion d algorithme Un problème, de multiples algorithmes Certains naturellement itératifs, d autres fondamentalement récursifs Pose même la question des primitives autorisées Méthodes de résolution Analyse descendante Diviser pour régner Randomisation 4 / 28

6 Pourquoi trier Exemple fondamental en informatique Notion d algorithme Un problème, de multiples algorithmes Certains naturellement itératifs, d autres fondamentalement récursifs Pose même la question des primitives autorisées Méthodes de résolution Analyse descendante Diviser pour régner Randomisation Comparaison d algorithmes Diverses caractéristiques de complexité Mais aussi d autres critères pour choisir tel ou tel algorithme 4 / 28

7 Pourquoi trier Applications Pour ordonner des valeurs bien entendu, mais surtout comme prétraitement pour résoudre efficacement plusieurs autres problèmes : Recherche dichotomique Détection de doublons Comparaison et opérations efficaces sur des ensembles Statistiques d ordre (médiane, quartiles...) Problèmes de graphes (arbre couvrant) et plus généralement d optimisation Géométrie algorithmique 5 / 28

8 Pourquoi trier Applications Pour ordonner des valeurs bien entendu, mais surtout comme prétraitement pour résoudre efficacement plusieurs autres problèmes : Recherche dichotomique Détection de doublons Comparaison et opérations efficaces sur des ensembles Statistiques d ordre (médiane, quartiles...) Problèmes de graphes (arbre couvrant) et plus généralement d optimisation Géométrie algorithmique Knuth (en 1973) affirme qu un ordinateur passe 25% de son temps à trier : car c est souvent utile car on trie parfois alors que ce n est pas indispensable car les tris sont parfois implémentés de façon non optimale... 5 / 28

9 Pourquoi trier Caractéristiques des tris Tri stable Dans le cas où plusieurs éléments sont considérés comme égaux pour le tri, leur ordre initial dans le tableau est préservé. 6 / 28

10 Pourquoi trier Caractéristiques des tris Tri stable Dans le cas où plusieurs éléments sont considérés comme égaux pour le tri, leur ordre initial dans le tableau est préservé. Tri en place L algorithme de tri utilise un espace mémoire constant en plus du tableau où sont stockées initialement les données. 6 / 28

11 Pourquoi trier Caractéristiques des tris Tri stable Dans le cas où plusieurs éléments sont considérés comme égaux pour le tri, leur ordre initial dans le tableau est préservé. Tri en place L algorithme de tri utilise un espace mémoire constant en plus du tableau où sont stockées initialement les données. Mais aussi : cache-friendly capacité à trier des données trop grosses pour la mémoire... 6 / 28

12 Algorithmes simples Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 7 / 28

13 Algorithmes simples Tri par sélection Analyse descendante : pour savoir trier, il suffit d extraire le minimum de recommencer avec le reste 8 / 28

14 Algorithmes simples Tri par sélection Analyse descendante : pour savoir trier, il suffit d extraire le minimum de recommencer avec le reste def tri_min(t): for i,ti in enumerate(t): imin = i for j in range(i+1,len(t)): if t[j] < t[imin] : imin = j t[i],t[imin] = t[imin],t[i] 8 / 28

15 Algorithmes simples Caractéristiques Complexité toujours en n(n+1) 2 Stable si la comparaison t[j] < t[imin] est stricte En place 9 / 28

16 Algorithmes simples Caractéristiques Complexité toujours en n(n+1) 2 Stable si la comparaison t[j] < t[imin] est stricte En place S écrit aussi bien en récursif def tri_min_rec(t, i): if i < len(t): imin = indice_du_min(t,i) t[i],t[imin] = t[imin],t[i] tri_min_rec(t, i+1) def indice_du_min(t,i): if i == len(t) - 1: return i else: imin = indice_du_min(t,i+1) if t[i] < t[imin]: return i else: return imin 9 / 28

17 Algorithmes simples Tri par insertion Programmation par contrat : à l itération i, la portion t[:i] sera triée. une itération consiste donc à insérer t[i] dans t[:i] 10 / 28

18 Algorithmes simples Tri par insertion Programmation par contrat : à l itération i, la portion t[:i] sera triée. une itération consiste donc à insérer t[i] dans t[:i] def tri_insertion(t): for i,ti in enumerate(t): j = i while j>0 and t[j-1] > ti : t[j] = t[j-1] j = j-1 t[j] = ti 10 / 28

19 Algorithmes simples Caractéristiques Complexité au pire en n(n+1) 2 mais au mieux en n Stable si la comparaison t[j-1] > t[j] est stricte En place Efficace sur les tableaux «presque triés» Efficace sur les petits tableaux (bonnes constantes) 11 / 28

20 Complexité du problème Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 12 / 28

21 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. 13 / 28

22 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. Mesure de coût Un algorithme de tri peut notamment : comparer des éléments entre eux déplacer des éléments (affectation) travailler sur les indices des tableaux 13 / 28

23 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. Mesure de coût Un algorithme de tri peut notamment : comparer des éléments entre eux déplacer des éléments (affectation) travailler sur les indices des tableaux (les indices sont de taille bornée) 13 / 28

24 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. Mesure de coût Un algorithme de tri peut notamment : comparer des éléments entre eux déplacer des éléments (affectation) (peuvent se faire en temps constant si on manipule des références) travailler sur les indices des tableaux (les indices sont de taille bornée) 13 / 28

25 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. Mesure de coût Un algorithme de tri peut notamment : comparer des éléments entre eux (les éléments peuvent être longs à comparer si ce ne sont pas des données atomiques) déplacer des éléments (affectation) (peuvent se faire en temps constant si on manipule des références) travailler sur les indices des tableaux (les indices sont de taille bornée) 13 / 28

26 Complexité du problème Rappels Complexité d un problème La complexité d un problème est la complexité du meilleur algorithme qui résoud ce problème. Mesure de coût Un algorithme de tri peut notamment : comparer des éléments entre eux (les éléments peuvent être longs à comparer si ce ne sont pas des données atomiques) déplacer des éléments (affectation) (peuvent se faire en temps constant si on manipule des références) travailler sur les indices des tableaux (les indices sont de taille bornée) On comptera les comparaisons entre éléments à trier. 13 / 28

27 Complexité du problème Complexité du problème de tri : borne inférieure On considère l arbre de décision d un algorithme de tri donné. t1 < t2 t1 < t3 t2 < t3 3,2,1 2,1,3 3,1,2 1,2,3 14 / 28

28 Complexité du problème Complexité du problème de tri : borne inférieure On considère l arbre de décision d un algorithme de tri donné. t1 < t2 t1 < t3 t2 < t3 3,2,1 2,1,3 3,1,2 1,2,3 Si l algorithme a un coût au pire de k comparaisons, alors la hauteur de l arbre est k. Il dispose donc au maximum de 2 k feuilles. 14 / 28

29 Complexité du problème Complexité du problème de tri : borne inférieure On considère l arbre de décision d un algorithme de tri donné. t1 < t2 t1 < t3 t2 < t3 3,2,1 2,1,3 3,1,2 1,2,3 Si l algorithme a un coût au pire de k comparaisons, alors la hauteur de l arbre est k. Il dispose donc au maximum de 2 k feuilles. Chaque feuille correspond à un ordre produit par le tri. Pour n éléments à trier, tout algorithme doit être capable de distinguer n! permutations. 14 / 28

30 Complexité du problème Complexité du problème de tri : borne inférieure On considère l arbre de décision d un algorithme de tri donné. t1 < t2 t1 < t3 t2 < t3 3,2,1 2,1,3 3,1,2 1,2,3 Si l algorithme a un coût au pire de k comparaisons, alors la hauteur de l arbre est k. Il dispose donc au maximum de 2 k feuilles. Chaque feuille correspond à un ordre produit par le tri. Pour n éléments à trier, tout algorithme doit être capable de distinguer n! permutations. Par conséquent tout algorithme de tri de coût k doit vérifier : 2 k n! ( n e ) n (formule de Stirling) k n log n n log e n log n 14 / 28

31 Complexité du problème Réalisation de la borne inférieure : tri par fusion Principe du Diviser pour régner 15 / 28

32 Complexité du problème Réalisation de la borne inférieure : tri par fusion Principe du Diviser pour régner Pour trier un tableau t de taille n : Si n vaut 0 ou 1, rien à faire Sinon : Soit m l indice médian de t Trier (récursivement) t entre les indices 0 et m 1 Trier (récursivement) t entre les indices m et n 1 Interclasser les deux moitiés de tableau 15 / 28

33 Complexité du problème Réalisation de la borne inférieure : tri par fusion Principe du Diviser pour régner Pour trier un tableau t de taille n : Si n vaut 0 ou 1, rien à faire Sinon : Soit m l indice médian de t Trier (récursivement) t entre les indices 0 et m 1 Trier (récursivement) t entre les indices m et n 1 Interclasser les deux moitiés de tableau À propos de l interclassement Maintenir deux indices i et j parcourant respectivement 0..m 1 et m..n 1 Placer dans un tableau auxiliaire le minimum de t[i] et t[j] Incrémenter l indice correspondant D où un coût linéaire 15 / 28

34 Complexité du problème Complexité Coût du tri par fusion C(n) = 2C(n/2) + n Par application du Master Theorem : log 2 2 = 1 d où C(n) = O(n log n) 16 / 28

35 Complexité du problème Complexité Coût du tri par fusion C(n) = 2C(n/2) + n Par application du Master Theorem : log 2 2 = 1 d où C(n) = O(n log n) Mais : Cet algorithme n est pas en place (tableau auxiliaire pour l interclassement) Constantes relativement élevées 16 / 28

36 Complexité du problème Récursif mais pas que Diviser pour régner induit naturellement une écriture récursive Mais icion peut complètement écrire l algorithme itérativement (ici pour n = 2 k ) : tab1 = [None]*len(tab) s = 1 while s < n: b, x, y = 0, 0, s for i in range(n): if (x < b + s and y < b + 2 * s and tab[x] < tab[y]) \ or (y == b + 2 * s): tab1[i] = tab[x] ; x = x + 1 else: tab1[i] = tab[y] ; y = y + 1 if x == b + s and y == b + 2 * s: b = b + 2 * s x, y = b, b + s for i in range(n): tab[i] = tab1[i] s = s * 2 17 / 28

37 Tri rapide Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 18 / 28

38 Tri rapide Le tri rapide aussi appelé QuickSort, Tri par segmentation... inventé par Tony Hoare en 1961 utilisé dans de nombreuses librairies comme tri «de référence» 19 / 28

39 Tri rapide Le tri rapide aussi appelé QuickSort, Tri par segmentation... inventé par Tony Hoare en 1961 utilisé dans de nombreuses librairies comme tri «de référence» Quelques caractéristiques fondamentalement récursif en place (pas besoin de tableau auxiliaire) non stable (les éléments «égaux» ne conservent pas leur ordre initial) 19 / 28

40 Tri rapide Principe général D A E C B F 20 / 28

41 Tri rapide Principe général D A E C B F 1. Choisir un élément : le pivot D A E C B F 20 / 28

42 Tri rapide Principe général D A E C B F 1. Choisir un élément : le pivot D A E C B F 2. Partitionner le tableau selon ce pivot : éléments inférieurs au pivot à gauche éléments supérieurs au pivot à droite A C B D F E 20 / 28

43 Tri rapide Principe général D A E C B F 1. Choisir un élément : le pivot D A E C B F 2. Partitionner le tableau selon ce pivot : éléments inférieurs au pivot à gauche éléments supérieurs au pivot à droite A C B D F E 3. Trier récursivement les deux sous-tableaux ainsi formés A B C D E F 20 / 28

44 Tri rapide Schéma de l algorithme TriSegmentation (E) Donnée-résultat Un ensemble E de n éléments comparables Effet de bord E est trié par ordre croissant if E pivot := Extrait (E) // retire l élément pivot de E (E 1, E 2) := Segmentation (E,pivot) // E 1 éléments plus petits que pivot // E 2 éléments plus grands que pivot Assemble ( TriSegmentation (E 1), pivot, TriSegmentation (E 2)) 21 / 28

45 Tri rapide Schéma de l algorithme TriSegmentation (E) Donnée-résultat Un ensemble E de n éléments comparables Effet de bord E est trié par ordre croissant if E pivot := Extrait (E) // retire l élément pivot de E (E 1, E 2) := Segmentation (E,pivot) // E 1 éléments plus petits que pivot // E 2 éléments plus grands que pivot Assemble ( TriSegmentation (E 1), pivot, TriSegmentation (E 2)) À instancier avec les contraintes suivantes : E est représenté dans un tableau Segmentation en place Après l appel à Extrait on ne touche plus au pivot 21 / 28

46 Tri rapide Conception récursive Les appels récursifs opéreront sur des sous-tableaux 2 paramètres en plus : les indices entre lesquels on travaille Reconstruction triviale : E 1 et E 2 sont triés et leurs éléments sont bien placés par rapport au pivot Cas de base : tableau de taille 0 ou 1 (déjà trié) 22 / 28

47 Tri rapide Conception récursive Les appels récursifs opéreront sur des sous-tableaux 2 paramètres en plus : les indices entre lesquels on travaille Reconstruction triviale : E 1 et E 2 sont triés et leurs éléments sont bien placés par rapport au pivot Cas de base : tableau de taille 0 ou 1 (déjà trié) TriSegmentation (T, g, d) Donnée-résultat Un tableau T d éléments comparables Effet de bord T est trié par ordre croissant entre les indices g et d if g < d pivot := T [g] Partition (T, g, d, pivot) TriSegmentation (T, g,?) TriSegmentation (T,?, d) 22 / 28

48 Tri rapide Conception récursive Les appels récursifs opéreront sur des sous-tableaux 2 paramètres en plus : les indices entre lesquels on travaille Reconstruction triviale : E 1 et E 2 sont triés et leurs éléments sont bien placés par rapport au pivot Cas de base : tableau de taille 0 ou 1 (déjà trié) TriSegmentation (T, g, d) Donnée-résultat Un tableau T d éléments comparables Effet de bord T est trié par ordre croissant entre les indices g et d if g < d pivot := T [g] i := Partition (T, g, d, pivot) TriSegmentation (T, g, i 1) TriSegmentation (T, i + 1, d) 22 / 28

49 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. 23 / 28

50 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while if else return i 23 / 28

51 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while if T [i + 1] pivot else return i 23 / 28

52 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while if T [i + 1] pivot i = i + 1 else return i 23 / 28

53 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while if T [i + 1] pivot i = i + 1 else Échanger T [d] et T [i + 1] d = d 1 return i 23 / 28

54 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while i < d if T [i + 1] pivot i = i + 1 else Échanger T [d] et T [i + 1] d = d 1 return i 23 / 28

55 Tri rapide La procédure Partition Partition (T, g, d) Donnée-résultat Un tableau T d éléments comparables Résultat : L indice i de pivot correctement placé dans le tableau Effet de bord Les éléments de T entre les indices : g et i 1 sont tous inférieurs à pivot. i + 1 et d sont tous supérieurs à pivot. i = g while i < d if T [i + 1] pivot i = i + 1 else Échanger T [d] et T [i + 1] d = d 1 Échanger T [g] et T [i] return i 23 / 28

56 Tri rapide Éléments de complexité Partition peut s écrire de diverses façons, toutes linéaires en d g. Évaluation des paramètres négligeable 24 / 28

57 Tri rapide Éléments de complexité Partition peut s écrire de diverses façons, toutes linéaires en d g. Évaluation des paramètres négligeable D où C TriSegmentation (d g) = C Partition (d g) +C TriSegmentation (i 1 g) +C TriSegmentation (d i 1) = O(d g) +C TriSegmentation (i 1 g) +C TriSegmentation (d i 1)... mais i est donné par Partition, donc dépend de la donnée. 24 / 28

58 Tri rapide Éléments de complexité Partition peut s écrire de diverses façons, toutes linéaires en d g. Évaluation des paramètres négligeable D où C TriSegmentation (d g) = C Partition (d g) +C TriSegmentation (i 1 g) +C TriSegmentation (d i 1) = O(d g) +C TriSegmentation (i 1 g) +C TriSegmentation (d i 1)... mais i est donné par Partition, donc dépend de la donnée. Intuitivement : l algorithme est efficace (resp. inefficace) quand le pivot est un élément médian (resp. extrême). Ce sont les mêmes équations que pour la hauteur moyenne d un ABR! D où un coût en moyenne de O(n log n). 24 / 28

59 Des tris linéaires Plan Pourquoi trier Algorithmes simples Complexité du problème Tri rapide Des tris linéaires 25 / 28

60 Des tris linéaires Tri par dénombrement Si on veut trier des entiers tous compris entre 0 et M 1 : occ = [0]*M for x in t: occ[x] = occ[x] + 1 i=0 for x in range(m): for j in range(occ[x]): t[i] = x i = i / 28

61 Des tris linéaires Tri par dénombrement Si on veut trier des entiers tous compris entre 0 et M 1 : occ = [0]*M for x in t: occ[x] = occ[x] + 1 i=0 for x in range(m): for j in range(occ[x]): t[i] = x i = i + 1 Linéaire si M = O(n) 26 / 28

62 Des tris linéaires Tri par paquets Si on sait que les n valeurs (entières ou flottantes par exemple) du tableau t à trier sont uniformément réparties dans un intervalle borné I : Découper l intervalle I en n sous-intervalles de même taille Prévoir un tableau de n ensembles d éléments initialement vides, correspondant chacun à un sous-intervalle 27 / 28

63 Des tris linéaires Tri par paquets Si on sait que les n valeurs (entières ou flottantes par exemple) du tableau t à trier sont uniformément réparties dans un intervalle borné I : Découper l intervalle I en n sous-intervalles de même taille Prévoir un tableau de n ensembles d éléments initialement vides, correspondant chacun à un sous-intervalle Parcourir le tableau t et stocker chaque élément dans l ensemble correspondant 27 / 28

64 Des tris linéaires Tri par paquets Si on sait que les n valeurs (entières ou flottantes par exemple) du tableau t à trier sont uniformément réparties dans un intervalle borné I : Découper l intervalle I en n sous-intervalles de même taille Prévoir un tableau de n ensembles d éléments initialement vides, correspondant chacun à un sous-intervalle Parcourir le tableau t et stocker chaque élément dans l ensemble correspondant Trier chaque sous-intervalle (un tri par insertion suffit). Reconstituer le tableau trié par concaténation des sous-intervalles 27 / 28

65 Des tris linéaires Tri par paquets Si on sait que les n valeurs (entières ou flottantes par exemple) du tableau t à trier sont uniformément réparties dans un intervalle borné I : Découper l intervalle I en n sous-intervalles de même taille Prévoir un tableau de n ensembles d éléments initialement vides, correspondant chacun à un sous-intervalle Parcourir le tableau t et stocker chaque élément dans l ensemble correspondant Trier chaque sous-intervalle (un tri par insertion suffit). Reconstituer le tableau trié par concaténation des sous-intervalles En moyenne, chaque sous-intervalle contient 1 élément (loi binomiale d espérance 1), donc son tri prend un temps constant. L algorithme est donc linéaire en n. 27 / 28

66 Des tris linéaires Où est le truc? On ne procède pas par comparaison entre éléments. Donc la borne inférieure calculée précédemment ne s applique pas. 28 / 28

67 Des tris linéaires Où est le truc? On ne procède pas par comparaison entre éléments. Donc la borne inférieure calculée précédemment ne s applique pas. Le gain de complexité observé s appuie sur une hypothèse supplémentaire à propos des données : valeurs pouvant servir d indices, nombre de valeurs borné distribution aléatoire particulière / 28

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Quelques Algorithmes simples

Quelques Algorithmes simples Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

CHAPITRE V. Recherche et tri

CHAPITRE V. Recherche et tri Cherchez et vous trouverez,... car qui cherche trouve. Matthieu 7 7-8 et Luc 11 9-10 CHAPITRE V Recherche et tri Objectif. Comprendre les techniques de base pour organiser des données ordonnées. Ce chapitre

Plus en détail

Cours de Probabilités et de Statistique

Cours de Probabilités et de Statistique Cours de Probabilités et de Statistique Licence 1ère année 2007/2008 Nicolas Prioux Université Paris-Est Cours de Proba-Stat 2 L1.2 Science-Éco Chapitre Notions de théorie des ensembles 1 1.1 Ensembles

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

Plus en détail

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

Plus en détail

MABioVis. Bio-informatique et la

MABioVis. Bio-informatique et la MABioVis Modèles et Algorithmes pour la Bio-informatique et la Visualisation Visite ENS Cachan 5 janvier 2011 MABioVis G GUY MELANÇON (PR UFR Maths Info / EPI GRAVITE) (là, maintenant) - MABioVis DAVID

Plus en détail

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories : La vision nous permet de percevoir et d interpreter le monde qui nous entoure. La vision artificielle a pour but de reproduire certaines fonctionnalités de la vision humaine au travers de l analyse d images.

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Bureau N301 (Nautile) benjamin@leroy-beaulieu.ch

Bureau N301 (Nautile) benjamin@leroy-beaulieu.ch Pre-MBA Statistics Seances #1 à #5 : Benjamin Leroy-Beaulieu Bureau N301 (Nautile) benjamin@leroy-beaulieu.ch Mise à niveau statistique Seance #1 : 11 octobre Dénombrement et calculs de sommes 2 QUESTIONS

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Julien Jorge, Xavier Gandibleux Laboratoire d Informatique de Nantes Atlantique

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Algorithmique et Programmation

Algorithmique et Programmation École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités Chapitre 2 Le calcul des probabilités Equiprobabilité et Distribution Uniforme Deux événements A et B sont dits équiprobables si P(A) = P(B) Si il y a équiprobabilité sur Ω, cad si tous les événements

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Groupe symétrique. Chapitre II. 1 Définitions et généralités Chapitre II Groupe symétrique 1 Définitions et généralités Définition. Soient n et X l ensemble 1,..., n. On appelle permutation de X toute application bijective f : X X. On note S n l ensemble des permutations

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Équations non linéaires

Équations non linéaires Équations non linéaires Objectif : trouver les zéros de fonctions (ou systèmes) non linéaires, c-à-d les valeurs α R telles que f(α) = 0. y f(x) α 1 α 2 α 3 x Equations non lineaires p. 1/49 Exemples et

Plus en détail

Sommaire. BilanStat manuel de présentation et d utilisation Page 2

Sommaire. BilanStat manuel de présentation et d utilisation Page 2 BilanStat-Audit Sommaire Présentation... 3 Chapitre 0 : Gestion des bases de données... 5 Chapitre 0 : Gestion des missions... 12 Chapitre 1 : Eléments généraux... 17 Chapitre 2 : Capitaux propres... 28

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world!

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo7. 1.1. Hello world! Exo7 Algorithmes et mathématiques Vidéo partie 1. Premiers pas avec Python Vidéo partie 2. Ecriture des entiers Vidéo partie 3. Calculs de sinus, cosinus, tangente Vidéo partie 4. Les réels Vidéo partie

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

Coefficients binomiaux

Coefficients binomiaux Probabilités L2 Exercices Chapitre 2 Coefficients binomiaux 1 ( ) On appelle chemin une suite de segments de longueur 1, dirigés soit vers le haut, soit vers la droite 1 Dénombrer tous les chemins allant

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. 1 Définitions, notations Calcul matriciel Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes. On utilise aussi la notation m n pour le

Plus en détail

Compression Compression par dictionnaires

Compression Compression par dictionnaires Compression Compression par dictionnaires E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif CompressionCompression par dictionnaires 1/25 Compression par dictionnaire Principe : Avoir une

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Problèmes liés à la concurrence

Problèmes liés à la concurrence ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions

Plus en détail

CCP PSI - 2010 Mathématiques 1 : un corrigé

CCP PSI - 2010 Mathématiques 1 : un corrigé CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P

Plus en détail