T.P. 4 : des arbres binaires variés et leurs applications
|
|
- Caroline Briand
- il y a 6 ans
- Total affichages :
Transcription
1 T.P. 4 : des arbres binaires variés et leurs applications 1 Arbres binaires de recherche 1.1 Ce qu on doit déjà savoir sur la recherche d un mot dans une liste triée et après... Supposons par exemple qu on veuille constituer et manipuler un lexique anglais/français. Un tel lexique sera représenté en Python par une liste de couples de mots, comme par exemple : lexique = [( blue, bleu ),( green, vert ),( red, rouge ),( yellow, jaune )] On suppose que les mots anglais sont rangés dans l ordre du dictionnaire (comme dans l exemple précédent). Cet ordre est l ordre implanté en python sur les chaines de caractères avec le symbole <. Notons aussi que pour les couples, python commence par comparer les premières entrées. On suppose donc qu on dispose d une variable globale lexique comme ci-dessus. a) Sachant que la liste des mots anglais est triée dans l ordre du dictionnaire, écrire une fonction traduit qui reçoit un mot anglais en argument (qui est supposé être dans le lexique) et renvoie sa traduction avec une complexité en O(log(n)) où n est la longueur du lexique. N.B. La complexité logarithmique demande une méthode de dichotomie. b) Ecriture une fonction insere qui reçoit un argument qui est un couple (motanglais, motfrancais) qui permet de rajouter ce couple à la bonne place dans la variable globale lexique : cette fonction sera de complexité linéaire. Le problème : la représentation de notre lexique sous cette forme fait que la fonction insere a une complexité en O(n). Nous allons maintenant présenter une nouvelle façon de coder le lexique, une autre structure de donnée, où l insertion, comme la recherche, d un mot dans le lexique, sera en O(log(n)). 1.2 Présentation des arbres binaires de recherche Définition mathématique 1 : un arbre sera pour nous un ensemble de points appelés noeuds muni d une relation pour laquelle chaque noeud a un père et un seul (on représente la relation père fils par une flèche), sauf un noeud qui n a pas de père qu on appelle la racine. On convient de représenter la racine en haut et les pères en dessus de leurs fils. Si le noeud p est le père du noeud f on dit aussi que f est un fils de p. Les noeuds qui n ont pas de fils sont appelés feuilles. Définition mathématique 2 : un arbre au sens précédent sera dit arbre binaire si chaque père a au plus deux fils, appelés alors fils droit et fils gauche. Lien avec notre problème : Chaque noeud sera un élément de notre ensemble de couples (motanglais,motfrancais). La relation père/fils entre les mots sera définie au niveau des parties motanglais (la partie motanglais du couple est ce qu on appelle la clé d enregistrement). 1
2 Par exemple, avec un lexique à quatre mots : ici la racine sera le couple dont blue est la clé, avec deux fils de clés red et yellow et red a un fils green Définition 3 : définition informatique d un arbre binaire, avec son implantation python : un arbre binaire est une structure de donnée qui peut être définie récursivement comme suit : un arbre binaire est : soit vide, codé comme une liste vide [], soit codé comme une liste [racine, filsgauche, filsdroit] où racine est un couple (motanglais,motfrancais), et filsdroits et filsgauche sont deux arbres binaires. Exemple : Avec Arbrelexique=[( blue, bleu ),filsgauche,filsdroit] où filsgauche=[( red, rouge ),[],[( green, vert ),[],[]]] et filsdroit=[( yellow, jaune ),[],[]], on aura le codage informatique de l arbre binaire dessiné ci-dessus. Définition 4 : arbre binaire de recherche : un arbre [racine, filsgauche, filsdroit] au sens de la définition 3 est un arbre binaire de recherche si, et seulement si, la clé de racine est strictement supérieure à la clé de tous les noeuds de filsgauche, la clé de racine est strictement inférieure à la clé de tous les noeuds de filsdroit, filsdroit et filsgauche sont des arbres binaires de recherche. L exemple précédent ne donne pas un arbre binaire de recherche mais la version modifiée suivante oui : 1.3 Implantation en python de la fabrication récursive des arbres binaires de recherche... et recherche! On considère donc des arbres binaires de recherche comme définis au paragraphe précédents, dont les noeuds sont des couples (motanglais,motfrancais) que l on compare pour l ordre lexicographique des mots anglais. a) Ecrire trois fonctions filsgauche, filsdroit, racine qui prennent en argument un arbre binaire de recherche arbre et renvoie respectivement son fils Gauche, son fils Droit, et sa racine. 2
3 b) On veut écrire alors une fonction récursive ajout(element, arbre) qui prend comme argument un élément i.e. un couple (motanglais,motfrancais) et un arbre binaire (qui au départ peut être vide, ce sera notre cas de base) et qui retourne un nouvel arbre binaire de recherche où element est incorporé à arbre. N.B. on doit comparer les mots anglais. Pour cela, le principe est le suivant : si le mot anglais de l élément à rajouter est plus grand que le mot anglais à la racine de l arbre, on construit un arbre binaire en gardant la même racine, le même fils gauche, et on se ramène au problème de rajouter l élément au fils droit. si le mot anglais de l élément à rajouter est plus petit que le mot anglais à la racine de l arbre... à vous de deviner! Ecrire la fonction python correspondante! Par commodité pour la suite, on considérera aussi le cas où le mot qu on rajoute est déjà présent dans l arbre : dans ce cas bien sûr l arbre ne devra pas être modifié. c) Appliquer la fonction précédente pour fabriquer un arbre binaire de recherche pour notre lexique en ajoutant successivement les éléments de la liste suivante : lexique = [( red, rouge ),( blue, bleu ),( yellow, jaune ),( green, vert )] d) Ecrire enfin une fonction récursive traduit2(mot,arbre) qui renvoie la traduction d un mot anglais qui est stocké dans un arbre binaire de recherche comme précédemment. (On comparera mot à la (partie anglaise de la) racine de l arbre, et si ils sont différents, ensuite récursivement soit à filsdroit soit à filsgauche..) 1.4 Complexités : arbres équilibrés a) Définition : la hauteur (on dit aussi profondeur) d un noeud de l arbre est le nombre de générations qui le séparent de la racine de l arbre. Cette hauteur admet naturellement une définition récursive rigoureuse (laquelle?) En déduire une fonction récursive hauteur(element, arbre) qui renvoie la hauteur du noeud element supposé présent dans l arbre arbre. b) Par définition la hauteur de l arbre est la maximum des hauteurs des éléments. On dira qu un arbre ayant n noeuds est équilibré ssi sa hauteur est minimale parmi tous les arbres ayant n noeuds. Donner en l expliquant, une relation entre la hauteur h d un arbre équilibré et son nombre total de noeuds n. Le dessin suivant, qui est un cas particulier devrait suffire pour comprendre! N.B. Pour les questions qui suivent, on admet qu on peut toujours ranger nos données dans un arbre binaire de recherche équilibré 1. c) Justifiez que la fonction traduit2 du paragraphe précédent, appliquée à un arbre équilibré, est de complexité O(log(n)) où n est le nombre de noeuds de l arbre. d) La fonction ajout du paragraphe précédent fabrique-t-elle forcément des graphes équilibrés? e) Montrer en tous cas que si on applique cette fonction ajout a un arbre équilibré ayant n noeuds, la complexité de l ajout est en O(log(n)). 1. en fait il existe bien des algorithmes pour s y ramener, en faisant des rotations 3
4 Moralité : par rapport à ce qu on a dit au tout premier paragraphe, les arbres binaires de recherche équilibrés ont l avantage qu aussi bien la recherche que l ajout d une donnée sont en O(log(n)). 2 Une classe python fabriquée suivant les principes du 1 : les dictionnaires python La classe dictionary n est pas au programme, dans une épreuve d écrit on devrait vous la présenter! a) Au 1, on a expliqué (modulo le problème d équilibrage des arbres!) comment fabriquer une structure qui permet de gérer un dictionnaire de n mots avec une complexité en O(log(n)) pour la recherche et l ajout d un mot. En python, il existe une structure qui fait exactement cela, la classe dict. Par exemple dico={ red : rouge, blue : bleu, yellow : jaune } sera un dictionnaire avec trois entrées, les mots en anglais ici seront les clés qui servent à accéder aux valeurs qu elles référencent (ici les mots en français). Voici quelques commandes de cette classe : a={} # création d un dictionnaire vide appelé a a[ truc ]=12 # création d une entrée du dictionnaire avec la valeur 12 et à la clé truc # eh oui c est exactement ce qu on ne peut pas faire avec les listes.. pas de out of range ici a[ truc ] # va renvoyer la valeur 12. dico[ red ] # va renvoyer rouge yellow in dico # va renvoyer True black in dico # va renvoyer False Question (exemple) écrire une fonction freq qui prend en paramètre une chaîne de caractères comme CABBAA et renvoie un dictionnaire où les lettres sont les clés et le nombre d occurrence de chaque lettre est la valeur stockée pour chaque clés. Ainsi freq( CABBAA ) renverra { A : 3, B : 2, C : 1}. Noter qu il n y a pas d ordre défini entre les clés d un dictionnaire. b) Quelque précision sur le parcours des dictionnaires : (i) Avec dico comme ci-dessus, que donne le code : for a in dico: print(a) (ii) Comment faire alors pour voir à la fois les clés et les valeurs qu elles référencent dans le dictionnaire dico? Créer une fonction ListeCouple qui prend en argument un dictionnaire et renvoie une liste des couples (clé,valeur). Par exemple ListeCouple(dico) renverra (à l ordre près) : [( blue, bleu ), ( red, rouge ), ( yellow, jaune )] 3 Tri avec la construction d un arbre binaire de recherche On a vu au 1.3 comment on pouvait transformer une liste en arbre binaire de recherche. Explicitement, à l aide de la fonction ajout définie dans ce paragraphe, écrire une fonction ABR qui fabrique un tel arbre à partir d une liste. Ainsi pour L=[34,2,667,1,4,20], ABR(L) donnera : [34, [2, [1, [], []], [4, [], [20, [], []]]], [667, [], []]] Expliquer ce que fait alors la fonction suivante, appliquée la variable arbre ci-dessus, et à la liste vide t=[] : def parcoursprofondeur(arbre,t): if arbre!=[]: t=parcoursprofondeur(filsgauche(arbre),t) 4
5 t.append(racine(arbre)) t=parcoursprofondeur(filsdroit(arbre),t) return t En déduire une méthode pour trier une liste (par exemple une liste de nombres) qui commence par transformer cette liste en arbre binaire de recherche. 4 Les tas et le tri par tas 4.1 La structure de tas : encore un arbre binaire Définition : un tas binaire, ici on dira simplement un tas (en anglais heap) est un arbre binaire (comme au 1) qui est ordonné de sorte que la clé d un noeud est toujours supérieure à la clé de ses fils (de sorte que son plus grand élément est toujours la racine de l arbre) 2. Du point de vue informatique, on va ici coder simplement ces arbres par un tableau (liste python) de nombres. Par exemple T=[9,5,6,2,1,5,1,0] codera l arbre cicontre. Cet arbre est bien un tas, puisque chaque père a une valeur supérieur à celles de ses fils. L intérêt des tas pour les tris : Au 3, on a expliqué comment obtenir un algorithme de tri en transformant une liste en arbre binaire de recherche. Ici c est bien plus immédiat avec les tas puisque si on sait ranger les données en un tas, à chaque fois la première entrée donnera le max. de la liste. 4.2 Organisation en tas But de cette partie : prendre une liste quelconque et la réorganiser en un tas. On va donc gérer les tas à l aide de listes pythons : chaque liste python sera interprétée mentalement par nous comme associée à un arbre binaire (qui n est pas forcément un tas). Par exemple pour T=[5,2,6,0,1,9,1,5] 2. En fait, il s agit de tas-max, en remplaçant supérieur par inférieur, on a la notion de tas-min. 5
6 Ainsi, on ne manipule que des listes simples, la structure d arbre n apparaît pas dans le codage, mais il faut comprendre que pour chaque i où cela a un sens T[i] a pour fils T[2i+1] et T[2i+2]. A l inverse le père de T[i] est T[(i-1)//2]. Par commodité, on notera pere(i) pour (i-1)//2, gauche(i)=2*i+1 et droite(i)=2i+2. a) Ecrire une fonction estuntas qui reçoit une liste T et renvoie True ou False ssi T représente un tas. b) Avec les hypothèses 0 i limite et limite longueur(t), écrire un fonction maximum(t,i,limite) qui retourne le plus petit entier imax vérifiant toutes les conditions suivantes : imax<limite et imax {i,gauche(i),droite(i)} T[iMax] T[i] gauche(i)<limite T[iMax] T[gauche(i)] droite(i)<limite T[iMax] T[droite(i)] En d autres termes maximum(t,i,limite) retourne l indice (inférieur à limite) de la plus grande des trois valeurs T[i], T[gauche(i)], T[droite(i)]. En cas de valeurs égales, le plus petit indice est retourné. Par exemple, avec tableau T ci-dessus, max(t,0,8)=2 puisque T[0]=5, T[1]=2, et T[2]=6, donc la valeur maximum est atteinte pour i=2. c) Soit la fonction récursive Python suivante : def entasserrecursif(t,i,limite): imax=maximum(t,i,limite) if imax!=i: echange(t,i,imax) entasserrecursif(t,imax,limite) avec : def echange(t,i,j): aux=t[i] T[i]=T[j] T[j]=aux On fait l appel de entasserrecursif(t,0,8) où T est la liste représentant l arbre suivant : Dessiner l arbre représentant T après cet appel de entasserrécursif(t,0,8) d) L algorithme entasserrecursif(t,i,limite) échange des valeurs du tableau de haut en bas, en suivant une branche de l arborescence. Cela a pour effet de faire descendre des petites valeurs, et de faire monter les grandes valeurs. Il est donc possible de construire un tas, en itérant cet algorithme sur les indices décroissants du tableau. Construire ainsi une fonction construiretas(t) qui transforme un tableau T en tas. e) En déduire un algorithme de tri, qui prend une liste et la trie (par ordre décroissant), grâce à la structure de tas. 6
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é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é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é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é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é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étailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
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é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é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étailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
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é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é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é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étailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
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é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étailContinuité 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é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étailIII- Raisonnement par récurrence
III- Raisonnement par récurrence Les raisonnements en mathématiques se font en général par une suite de déductions, du style : si alors, ou mieux encore si c est possible, par une suite d équivalences,
Plus en détailLES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION
LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement
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étailLes 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étailTP1 - Prise en main de l environnement Unix.
Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents
Plus en détailInitiation à 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étailFonctions de plusieurs variables
Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme
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étailL exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
Plus en détailÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
Plus en détailIndications pour une progression au CM1 et au CM2
Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir
Plus en détailInitiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr
Initiation à Excel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex Plan de cette année
Plus en détailV- Manipulations de nombres en binaire
1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,
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é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étailInitiation à la Programmation en Logique avec SISCtus Prolog
Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées
Plus en détailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
Plus en détailRecherche 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étailLa NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.
La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of
Plus en détailEVALUATION Nombres CM1
IEN HAUTE VALLEE DE L OISE EVALUATION Nombres CM1 PRESENTATION CONSIGNES DE PASSATION CONSIGNES DE CODAGE Livret du maître Nombres évaluation CM1 2011/2012 Page 1 CM1 MATHÉMATIQUES Champs Compétences Composantes
Plus en détailTS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S
FICHE Fiche à destination des enseignants TS 35 Numériser Type d'activité Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S Compétences
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étailSOCLE 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é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étailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailDM 1 : Montre Autoquartz ETA
Lycée Masséna DM 1 : Montre Autoquartz ETA 1 Présentation de la montre L essor de l électronique nomade s accompagne d un besoin accru de sources d énergies miniaturisées. Les contraintes imposées à ces
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é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>
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é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étailCalcul 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é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étailRaisonnement 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étailLe produit semi-direct
Le produit semi-direct Préparation à l agrégation de mathématiques Université de Nice - Sophia Antipolis Antoine Ducros Octobre 2007 Ce texte est consacré, comme son titre l indique, au produit semi-direct.
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étail«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris
«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie Agnès Dullin, lycée J. Racine 20 rue du Rocher, 75008 Paris OBJECTIFS 1- Niveau et insertion dans la programmation 2-
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é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é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é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étailChapitre 3. Les distributions à deux variables
Chapitre 3. Les distributions à deux variables Jean-François Coeurjolly http://www-ljk.imag.fr/membres/jean-francois.coeurjolly/ Laboratoire Jean Kuntzmann (LJK), Grenoble University 1 Distributions conditionnelles
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailINF601 : Algorithme et Structure de données
Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)
Plus en détailDéfinition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3
8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant
Plus en détailConsigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)
Découverte du monde : traiter deux informations Compétence : Savoir utiliser un tableau à double entrée. Matériel : - un plateau de jeu quadrillé : cinq lignes et cinq colonnes, - quatre pièces "couleur",
Plus en détailProbabilités conditionnelles Exercices corrigés
Terminale S Probabilités conditionnelles Exercices corrigés Exercice : (solution Une compagnie d assurance automobile fait un bilan des frais d intervention, parmi ses dossiers d accidents de la circulation.
Plus en détailCours 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étailET 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étailintroduction 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étailTD 1 - Structures de Traits et Unification
TD 1 - Structures de Traits et Unification 1 Définitions Un trait (en: feature) est un couple attribut-valeur. Une structure de traits (en: feature structure) est un ensemble de traits. On peut les représenter
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailThéorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France
Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes
Plus en détailObjets 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étailProbabilité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étailIntroduction à l étude des Corps Finis
Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur
Plus en détailTP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
Plus en détailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailArbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
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étailLes indices à surplus constant
Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté
Plus en détailChapitre 1 : Évolution COURS
Chapitre 1 : Évolution COURS OBJECTIFS DU CHAPITRE Savoir déterminer le taux d évolution, le coefficient multiplicateur et l indice en base d une évolution. Connaître les liens entre ces notions et savoir
Plus en détailArithmé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étailExercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA
75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche
Plus en détailExercices de dénombrement
Exercices de dénombrement Exercice En turbo Pascal, un entier relatif (type integer) est codé sur 6 bits. Cela signifie que l'on réserve 6 cases mémoires contenant des "0" ou des "" pour écrire un entier.
Plus en détailStructure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
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é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 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 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailPython - introduction à la programmation et calcul scientifique
Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de
Plus en détailCours d Analyse. Fonctions de plusieurs variables
Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........
Plus en détailModèles à Événements Discrets. Réseaux de Petri Stochastiques
Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés
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étailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
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étailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailLES TOUT PREMIERS PAS
DESMODO, un logiciel de gestion d idées http://www.desmodo.net/ LES TOUT PREMIERS PAS Desmodo est un logiciel (libre) qui permet, entre autre, de visualiser et de synthétiser, de manière organisée, sous
Plus en détailProjet Matlab : un logiciel de cryptage
Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que
Plus en détail