Table des matières. 1 Tri par insertion. MP1 Lycée Janson de Sailly. Algorithmes de tri
|
|
- Nicolas Léger
- il y a 7 ans
- Total affichages :
Transcription
1 Table des matières 1 Tri par insertion 1 Tri fusion.1 Principe Algorithme de fusion Algorithme du tri par fusion Tri rapide (quick sort) Algorithme du pivot Algorithme de tri rapide Application : recherche de la médiane dans une liste 7 But : étudier trois algorithmes qui permettent de trier les différents éléments d un tableau. On note A[0...n 1] un tableau contenant n éléments qui peuvent être des entiers, des réels ou, plus généralement, toute collection de valeurs sur lesquelles on peut définir une relation d ordre total. En pratique nous allons étudier des tableaux d entiers positifs. On peut accéder à chaque élément du tableau au moyen de son indice : entier i [[0...n - 1]]. A[i] désigne le (i + 1) ème élément du tableau. A[0] est le premier élément du tableau et A[n 1] le dernier. La convention adoptée pour les indices est celle que Python utilise pour les listes ou les tableaux numpy. 1 Tri par insertion Cet algorithme s inspire du tri que fait un joueur de cartes lors de la distribution du jeu. Les cartes qu il a en main sont déjà triées, la plus petite étant à gauche et la plus grande à droite. Lorsqu on lui distribue une nouvelle carte, il va l insérer à sa place en la comparant aux plus grandes valeurs de son jeu. Supposons que la prochaine "carte" à insérer à la bonne place soit A[i]. On suppose que le sous-tableau A[0...i 1] est déjà trié. L idée est de créer un trou à l emplacement où se trouve A[i] en la sauvegardant temporairement dans une variable temp. On compare A[i 1] et A[i]. Si A[i 1] A[i] c est terminé et on remet temp à sa place. Si A[i 1] > A[i] on décale le contenu A[i 1] dans la case libre A[i], ce qui déplace le trou vers la gauche du tableau. On recommence en comparant A[i ] avec A[i]. Le processus s arrête lorsque on a trouvé k tel que A[i k] A[i] ou si on atteint A[0]. On recommence tout le processus avec la nouvelle carte à insérer, c est à dire A[i + 1]. 1
2 Précondition : n > 1 # Au moins éléments dans le tableau Tri fusion fonction TRI_INSERTION(A, n) : 1. pour i allant de 1 à n 1 faire :. temp = A[i] 3. j = i # j est l indice du trou dans le tableau 4. tant que { j > 0 et A[j 1] > temp } faire : 5. A[j] = A[j 1] 6. j = j 1 7. A[j] = temp Intérêt : Le tri se fait sur place c est à dire à l intérieur même du tableau. Pas besoin de réserver un espace mémoire supplémentaire. Réalisation 1. Écrire cet algorithme en langage Python et le tester avec la liste proposée sur le site mp1.. En vous aidant du tableau ci-dessous, calculer la complexité temporelle de cette fonction dans le meilleur des cas, puis dans le pire des cas (à définir). fonction TRI_INSERTION(A, n) Coût Nbre de fois 1 pour i allant de 1 à n-1 : c 1 temp = A[i] c 3 j = i c 3 4 tant que ( j > 0 et A[j - 1] > temp ) : c 4 5 A[j] =A[j - 1] c 5 6 j = j - 1 c 6 7 A[j] = temp c 7.1 Principe Le tri fusion est un exemple du paradigme diviser pour résoudre. Cela consiste à prendre un problème et à le diviser en deux sous - problèmes plus simples à résoudre. On utilise ensuite les deux solutions pour résoudre le problème initial Prenons l exemple d un jeu de 3 cartes à trier. L idée est de partager ce jeu en deux jeux de 16 cartes (diviser) et de trier séparément ces deux jeux (résoudre). On ré-assemble ensuite chacun des deux jeux, grâce à un algorithme de fusion.. Algorithme de fusion L algorithme le plus important de ce tri est celui qui permet la fusion de deux jeux de cartes triés séparément pour n en former qu un dans lequel toutes les cartes sont triées. Dans notre cas, les deux jeux de cartes sont en fait un sous-tableau A[p...q, q + 1,...r] de A, où p q < r. Le premier jeux de carte est représenté par A[p...q] et le second jeu par A[q + 1,..., r]. Chacun est déjà trié séparément, la plus petite valeur étant celle d indice le plus bas et la plus grande valeur celle d indice le plus élevé. On aura donc : A[p] A[p + 1]... A[q] et A[q + 1]... A[r] L algorithme de fusion est écrit dans une fonction FUSION qui prend en argument le tableau A et les trois entiers p, q et r : On commence par "vider" A[p...r] dans deux sous-tableau : G pour tous les éléments allant de A[p] à A[q] et D pour tous les éléments allant de A[q+1] à A[r]. On remplit ensuite à nouveau A[p...r] en comparant chaque élément de G et de D afin de le placer à la bonne place dans A.
3 fonction FUSION(A, p, q, r) : Variables locales : tableaux d entiers G[0...q p + 1], D[0...r q] 1 pour i allant de 0 à q p faire : G[i] = A[p + i] 3 pour j allant de 0 à r q 1 faire : 4 D[j] = A[q + j + 1] 5 G[q p + 1] = 6 D[r q] = 7 i = 0 8 j = 0 9 pour k allant de p à r faire : 10 si G[i] D[j] faire : 11 A[k] = G[i] 1 i = i sinon : 14 A[k] = D[j] 15 j = j + 1 Aux lignes 5 et 6, on a recours à une astuce qui consiste à placer une valeur appelée à la fin des tableaux G et D : en pratique, c est une valeur strictement supérieure à toutes les valeurs du tableau A qui fait office de "butée" ou encore de sentinelle. Cela évite d avoir à introduire un test au sein de la boucle "pour" destiné à savoir quand on atteint la fin d un de ces deux tableaux. Les lignes 7, 8 et 9 introduisent 3 entiers i, j et k qui sont les indices des tableaux G, D et A. Pour chaque valeur de k entre p et q, on compare G[i] et D[j] et on place la plus petite des deux valeurs dans A[k]. On augmente ensuite i ou j suivant la valeur qui a été transférée. Le processus est réitéré pour toutes les valeurs de k variant de p à r, grâce à la boucle pour, ligne Écrire la fonction FUSION en Python. À l aide du tableau ci-dessous, montrer que sa complexité temporelle T(n), avec n = r p + 1 (nombre d éléments du sous tableau A[p...r] est O(n). fonction FUSION(A, p, q, r) : Coût Nbre de fois 1 pour i allant de 0 à q p : c 1 G[i] = A[p + i] c 3 pour j allant de 0 à r q : c 3 4 D[j] = A[q + j + 1] c 4 5 G[q p + 1] = infini c 5 6 D[r q] = infini c 6 7 i = 0 c 7 8 j = 0 c 8 9 pour k allant de p à r : c 9 10 si G[i] D[j] : c A[k] = G[i] c 11 1 i = i + 1 c 1 13 sinon : 0 14 A[k] = D[j] c j = j + 1 c 15 3
4 .3 Algorithme du tri par fusion Soit à trier le sous-tableau A[p...r] (p r) extrait de A[0...n 1]. La fonction TRI_FUSION, prend en paramètres le tableau A et les deux entiers p et r. Elle utilise le paradigme "diviser pour résoudre", c est à dire qu elle va séparer A[p...q] en deux tableaux de tailles à peu près identique qu elle va trier séparément, avec une approche purement récursive. fonction TRI_FUSION(A, p, r) : 1. si p < r faire : ( ) p + r. q = E 3. TRI_FUSION(A, p, q) 4. TRI_FUSION(A, q + 1, r) 5. FUSION(A, p, q, r) La ligne 1 teste si p < r. Dans le cas contraire, on a soit une absurdité (r < p), soit il n y a rien à trier (p == r) puisque le soustableau ne renferme alors qu un seul élément. ( ) p + q À la ligne, on définit l entier q = E (partie entière) ce qui permet de diviser A[p...r] en deux sous tableaux de tailles égales ou environ égales : A[p..q] et A[q r] : diviser. La fonction s appelle ensuite de façon récursive lignes 3 et 4 pour trier les deux sous-tableaux obtenus : résoudre. Le tri du tableau entier se fait en appelant la fonction TRI_FUSION(A, 0, n 1). 1. Écrire cette fonction en Python et la tester sur la liste fournie sur le site mp1.. Dessiner l arbre des appels récursifs de la fonction TRI_FUSION pour A = [7, 3, 1, 8, 4]. 3. En vous aidant du tableau ci-dessous et en supposant que n = r p + 1 est toujours divisible par (hypothèse simplificatrice mais efficace), montrer que sa complexité temporelle T (n) vérifie l équation (approchée) : T (n) = T ( n ) + O(n) 4. En posant n = p et en étudiant la suite u p = T (p ) p, résoudre cette équation de récurrence et montrer que T (n) = O(n lg(n) ) où lg est le logarithme en base. fonction TRI_FUSION(A, p, r) : Coût Nbre de fois 1 si p < r : c 1 q = E( (p + r)/ ) c 3 TRI_FUSION(A, p, q) 4 TRI_FUSION(A, q + 1, r) 5 FUSION(A, p, q, r) À la ligne 5, on ré-assemble enfin les deux sous-tableaux triés grâce à la fonction FUSION étudiée à la section précédente. 4
5 3 Tri rapide (quick sort) Le tri rapide est très souvent utilisé, bien que ce ne soit pas le meilleur en terme de complexité temporelle. Comme le tri par fusion, il fonctionne lui aussi sur le principe diviser pour résoudre et sur l approche purement récursive. En voici le principe : On commence par choisir une valeur particulière du tableau qu on appelle le pivot. On ré-ordonne ensuite le tableau en plaçant toutes les valeurs < pivot à gauche de celui-ci et toutes les valeurs > pivot à droite de celui-ci. L algorithme PIVOT se charge de faire cela. À la fin de l algorithme précédent, le pivot est à la bonne place dans le tableau. Soit ind_p son indice. Le tableau A est ensuite divisé en deux sous-tableaux A[0...ind_p 1] et A[ind_p n 1] à qui on va appliquer séparément l algorithme PIVOT : on recommence le premier point avec chacun des deux sous-tableaux, selon une approche récursive. 3.1 Algorithme du pivot Prenons un tableau A[0...n 1] contenant n > 1 éléments entiers positifs que l on souhaite trier. Pour des raisons qui vont apparaître plus tard, on va commencer par s intéresser au sous-tableau A[p...q] délimité par les indices p et q, vérifiant : 0 p < q n 1 On choisit comme pivot de ce sous tableau A[p...q] son dernier élément A[q]. La fonction PIVOT ci-dessous permet de réordonner les éléments A[p], A[p + 1],..., A[q] en plaçant toutes les valeurs inférieures au pivot à gauche de celui-ci et toutes les valeurs supérieures au pivot à droite. Elle retourne l indice ind_p du pivot, après que A[p...q] ait été ré-ordonné. fonction PIVOT(A, p, q) : 1 si p < q : pivot = A[q] 3 temp = A[p] 4 min = p 5 max = q 6 tant que min < max : 7 si temp > pivot : 8 A[max] = temp 9 max = max temp = A[max] 11 sinon : 1 A[min] = temp 13 min = min temp = A[min] 15 A[min] = pivot 16 retourner min 17 sinon : 18 retourner 1 À la ligne 1, on place une condition p < q pour lancer l algorithme. En effet, si p > q, c est absurde et si p == q, A ne contient qu un seul élément et il n est pas nécessaire de le réordonner. Dans ce cas l indice retourné vaut 1 : cette valeur ne pouvant pas être celle d un indice, cela permet de placer une sentinelle dans le programme. Ligne, le pivot choisi est toujours A[q], valeur de plus haut indice et on crée un trou dans A en sauvegardant cette valeur dans la 5
6 variable pivot. À la ligne 3, on crée un deuxième trou dans A en sauvegardant temporairement A[p] dans une autre variable, nommée temp. Les indices des deux trous sont appelés min et max. Ces indices vont varier au cours de la progression de l algorithme. Au début, min vaut p et max est égal à q (initialisation). À partir de la ligne 6, on s engage dans une boucle qui ne va s arrêter que lorsque min sera égal à max, avec deux options : si... sinon... Si temp > pivot, on place la valeur contenue dans temp dans A[max] et on diminue max d une unité : le trou indicé par max se déplace donc vers la gauche. On crée alors un nouveau trou en max-1 en sauvegardant la valeur dans temp. Au contraire, si temp pivot, on place la valeur contenue dans temp dans A[min] puis on augmente min d une unité : le trou se déplace donc vers la droite. On crée alors un nouveau trou en min + 1 en sauvegardant la valeur dans temp. À la ligne 15, tous les éléments du tableau sont correctement positionnés et il reste un seul trou d indice min == max. Il ne reste plus qu à remettre l élément pivot à cette position. La fonction retourne alors l indice du pivot (ou 1). 1. Écrire la fonction PIVOT en Python.. En vous aidant du tableau ci-contre, montrer que sa complexité temporelle T (n) où n = q p + 1 est le nombre d éléments du sous-tableau A[p...q] vérifie T (n) = O(n). fonction PIVOT(A, p, q) Coût Nbre de fois 1 si p < q : c 1 pivot = A[q] c 3 temp = A[p] c 3 4 min = p c 4 5 max = q c 5 6 tant que min < max : c 6 7 si temp > pivot : c 7 8 A[max] = temp c 8 9 max = max - 1 c 9 10 temp = A[max] c sinon : 0 1 A[min] = temp c 1 13 min = min + 1 c temp = A[min] c A[min] = pivot c retourner min c sinon : 0 18 retourner 1 c Algorithme de tri rapide Voici maintenant l algorithme du tri rapide. Il est écrit sous la forme d une fonction TRI_RAPIDE(A, p, q) qui prend comme paramètres un tableau A[0...n 1] et les deux entiers p et q qui délimitent le sous-tableau A[p...q] qui va être trié. À la ligne 1, la fonction PIVOT est appelée. Elle ré-ordonne A[p...q] et place le pivot à la bonne position : tous les éléments de A[p...q] inférieurs au pivot sont à sa gauche et tous ceux qui 6
7 sont supérieurs au pivot sont à sa droite. On récupère l indice du pivot dans la variable ind_p. Il ne reste plus qu à trier les deux sous-tableaux A[p...ind_p 1] et A[ind_p q], ce qui est fait aux lignes 3 et 4 en appelant la fonction TRI_RAPIDE de façon récursive. fonction TRI_RAPIDE(A, p, q) : 1 ind_p = PIVOT(A, p, q) si ind_p!= 1 : 3 TRI_RAPIDE(A, p, ind_p 1) 4 TRI_RAPIDE(A, ind_p + 1, q) ˆL = [ˆx 0,..., ˆx n 1 ] formée des mêmes éléments écrits dans l ordre croissant. Lorsque n = p + 1 est impair, la valeur médiane est la valeur ˆx p pour laquelle il existe p éléments strictement plus petits et p éléments strictement plus grands. Lorsque n = p est pair, on appelle valeurs médianes les deux éléments ˆx p 1 et ˆx p. considérons une liste A non triée composée de n éléments tous distincts deux à deux. Écrire une fonction MEDIANE(A) qui retourne la valeur ou les valeurs médianes de A et dont la complexité soit en O(n lg n). Si vous voulez trier le tableau entier A[0.. n 1] tout entier, il suffit d appeler la fonction TRI_RAPIDE(A, 0, n 1). 1. Écrire cette fonction en Python et vérifier son fonctionnement sur la liste exemple du site mp1.. Dessiner l arbre des appels récursifs lorsque A = [7, 3, 1, 8, 4]. On peut montrer que la complexité temporelle T (n) de cette fonction est O(n ) dans le pire des cas et O(n lg(n) ) dans le meilleur des cas. 4 Application : recherche de la médiane dans une liste Soit L = [x 0,..., x n 1 ] une liste de n valeurs distinctes appartenant à un ensemble totalement ordonnée. On lui associe la liste triée 7
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étail1 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étailExercices 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étailAlgorithmes 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étailMISE 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étailArchitecture 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étailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailAlgorithmique 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étailQuelques 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étail1 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étailBases 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étailARBRES 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étailExercices - 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étailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
Plus en détailInitiation à 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étailINITIATION 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étailUEO11 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étailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur
Plus en détailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détailLimites 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étailavec des nombres entiers
Calculer avec des nombres entiers Effectuez les calculs suivants.. + 9 + 9. Calculez. 9 9 Calculez le quotient et le rest. : : : : 0 :. : : 9 : : 9 0 : 0. 9 9 0 9. Calculez. 9 0 9. : : 0 : 9 : :. : : 0
Plus en détailSouad 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étailLicence 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étail4. Les structures de données statiques
4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer
Plus en détailIntroduction à 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étailComplexité. 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étailLes 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étailDé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étailCours 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étailEnsimag 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étailGUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger
GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger SOMMAIRE GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger o o o o o o o o o o o o
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailCORRECTION EXERCICES ALGORITHME 1
CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré
Plus en détailRappels 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étailManuel 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étailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détail* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours
Exo7 Continuité (étude globale). Diverses fonctions Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr * très facile ** facile *** difficulté moyenne **** difficile *****
Plus en détailMIS 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étailCours 02 : Problème général de la programmation linéaire
Cours 02 : Problème général de la programmation linéaire Cours 02 : Problème général de la Programmation Linéaire. 5 . Introduction Un programme linéaire s'écrit sous la forme suivante. MinZ(ou maxw) =
Plus en détailCours 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étailChapitre 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étail1/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étailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailCapacité d un canal Second Théorème de Shannon. Théorie de l information 1/34
Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second
Plus en détailIntelligence Artificielle Planification
Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en détailEcran principal à l ouverture du logiciel
MANUEL D UTILISATION PLATEFORME SMS Félicitations pour avoir choisi notre plateforme d envoi de SMS. Le logiciel est très simple d utilisation et intuitif. Avec ce logiciel vous êtes libre de créer vos
Plus en détailRepré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étailEteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :
MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE
Plus en détailUniversité 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étailChapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :
Chapitre Chapitre. Séries de Fourier Nous supposons connues les formules donnant les coefficients de Fourier d une fonction - périodique : c c a0 f x dx c an f xcosnxdx c c bn f xsinn x dx c L objet de
Plus en détailImage 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étailLes deux points les plus proches
MPSI Option Informatique Année 2001, Deuxième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Les eux pots les plus proches Lors e cette séance, nous allons nous téresser au problème suivant :
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailUnity Real Time 2.0 Service Pack 2 update
Unity Real Time 2.0 Service Pack 2 update Configuration des Objectifs Analytiques La nouvelle version permet, en un écran, de configurer un lot, un panel ou un instrument. Le menu est accessible au moyen
Plus en détailURECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2
Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont
Plus en détailAlgorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Plus en détailYANN ROUDAUT - Professeur de l Ecole Française de Poker - roudaut@ecolefrancaisedepoker.fr - 06 28 76 48 93
MODULE LES MATHEMATIQUES DU POKER Probabilités et Notions de Cotes - Partie 1 YANN ROUDAUT - Professeur de l Ecole Française de Poker - roudaut@ecolefrancaisedepoker.fr - 06 28 76 48 93 A/ POKER ET MATHEMATIQUES
Plus en détailNombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN
Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques
Plus en détailEuropresse.com. Pour bibliothèque d enseignement Pour bibliothèque publique. Consulter facilement la presse. Guide version 1.
Europresse.com Pour bibliothèque d enseignement Pour bibliothèque publique Consulter facilement la presse Guide version 1.4 CEDROM-SNi Utiliser la «Recherche simple» La «Recherche simple» 1. Saisissez
Plus en détailEXCEL TUTORIEL 2012/2013
EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi
Plus en détail4D v11 SQL Release 5 (11.5) ADDENDUM
ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release
Plus en détailLogique. Plan du chapitre
Logique Ce chapitre est assez abstrait en première lecture, mais est (avec le chapitre suivant «Ensembles») probablement le plus important de l année car il est à la base de tous les raisonnements usuels
Plus en détailALGORITHMIQUE 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étailSuites numériques 3. 1 Convergence et limite d une suite
Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailTP 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étailECR_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étailPrécision d un résultat et calculs d incertitudes
Précision d un résultat et calculs d incertitudes PSI* 2012-2013 Lycée Chaptal 3 Table des matières Table des matières 1. Présentation d un résultat numérique................................ 4 1.1 Notations.........................................................
Plus en détailTP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Plus en détailLogiciel 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étailJade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
Plus en détailCompression 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étailProgrammes 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étailTravaux 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étailMATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.
Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne
Plus en détailCours 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étailBaccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.
Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. L usage d une calculatrice est autorisé Durée : 3heures Deux annexes sont à rendre avec la copie. Exercice 1 5 points 1_ Soit f la
Plus en détailUne nouvelle approche de détection de communautés dans les réseaux sociaux
UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS Département d informatique et d ingénierie Une nouvelle approche de détection de communautés dans les réseaux sociaux Mémoire (INF 6021) pour l obtention du grade de Maîtrise
Plus en détailLES MOTEURS DE RECHERCHE SUR INTERNET
La recherche efficace est autant une question de méthodologie que de maîtrise de «trucs et astuces». Internet n a pas été conçu au départ comme un outil de recherche d information, mais comme un outil
Plus en détailExo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.
Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailSupport de TD ArcGIS 10.1. Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT 2014-2015. 3 e année ingénieur
JEAN-MARC GILLIOT 2014-2015 Durée 1,5 heures Introduction à l automatisation et au développement avec ArcGIS 10.1 3 e année ingénieur Support de TD ArcGIS 10.1 Grande école européenne d'ingénieurs et de
Plus en détail6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses
6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation
Plus en détailProgrammation 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étailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailCalculateur quantique: factorisation des entiers
Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique
Plus en détailNetwork musical jammin
Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le
Plus en détailCorrigé 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étailBaccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé
Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e
Plus en détailBaccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé
Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue
Plus en détailChapitre 6. Fonction réelle d une variable réelle
Chapitre 6 Fonction réelle d une variable réelle 6. Généralités et plan d étude Une application de I dans R est une correspondance entre les éléments de I et ceu de R telle que tout élément de I admette
Plus en détailOptimisation, traitement d image et éclipse de Soleil
Kléber, PCSI1&3 014-015 I. Introduction 1/8 Optimisation, traitement d image et éclipse de Soleil Partie I Introduction Le 0 mars 015 a eu lieu en France une éclipse partielle de Soleil qu il était particulièrement
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailEXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05
EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA
Plus en détailAlgorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Plus en détailManuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer.
Manuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer. Sommaire 1. Se loguer 2. Ta place de travail (Tableau de bord) 3. Créer ton article 3.1«Ajouter» un article 3.2 Ta feuille de papier
Plus en détail