Définition de file En informatique, on définit une file comme étant une structure de données où l’on peut insérer et extraire en fonctionnant selon le.

Slides:



Advertisements
Présentations similaires
Explorer un espace d’états
Advertisements

Méthodes basées sur la connaissance de la fécondité
MODIFICATION DES CODES DETERMINES PAR DES TABLE - PROCEDURES 6 septembre 2007 (Joël Martellet, WMO, World Weather Watch, Data Processing and Forecasting.
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Comment décimer les sons numériques
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
12 novembre 2012 Grégory Petit
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Navigation côtière 1 Partie 5
Utilisation des tableaux
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Bien se préparer aux examens
Mires Chevrons Paul JEAN
Structures de données linéaires
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
Production de modèles algébriques
La spécialité mathématiques en Terminale S
Introduction à l’algorithmique
Le codage des nombres en informatique
Quest-ce quune classe dallocation? Une classe dallocation détermine la portée et la durée de vie dun objet ou dune fonction.
EXEMPLE DE MESSAGE CRYPTE PUIS DECRYPTE avec la méthode RSA
Découvrons le sens… caché derrière la multiplication
IFT-2000: Structures de données
Structures de données IFT-2000
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Présentation Structures de Données et TDA
CSI 4506: Introduction à l’intelligence artificielle
Algorithmes probabilistes
ETUDE DU FROTTEMENT DE GLISSEMENT
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
2. Optimisation sans contrainte Fonctions à une seule variable
Un peu de maths (et d’info)
ALGORITHME DE TRI Le tri par insertion.
Rappel... Valeurs propres et vecteurs propres. Définitions;
Le chiffrement asymétrique
Les Algorithmes Cryptographiques Asymétriques
Méthodes de tri.
Arbres binaires et tables de hachage
Attaque du protocoles RSA Yoann Moulin ESISAR IR - P2004
Pr BELKHIR Abdelkader USTHB
Cours 4 - Trois algorithmes de recherche dans un tableau
SIO SI2 : Support Réseau des Accès Utilisateurs
ETNA – 1ème année Guillaume Belmas –
GF-11: Tri Interne Efficace et Tri Externe
Mathématiques Discrètes Chapitre 2 (section 3)
Le cryptosystème RSA à clés publiques
eXtensible Markup Language. Généralités sur le XML.
E. Le mécanisme de réaction
Création JJ Pellé novembre 2014Musique : David Schombert.
Réalisation d’un logiciel de Chiffrement RSA.
Cours 5 - Trois algorithmes de tri d'un tableau
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Algorithmique Tableaux de données
Structures de données IFT-2000
Diffusion Nationale TOULOUSE -Mai 2006 STSWEB Rattacher Services et ARE Gestion individuelle des services et ARE.
Programmation créative – Les vecteurs
Distribution à deux variables
Multiplexeurs A.Lebrun.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
Cours 12 CROISSANCE D’UNE FONCTION. Aujourd’hui, nous allons voir ✓ Croissance et décroissance ✓ Maximum et minimum relatif.
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
Procédures de décompression
Transcription de la présentation:

Définition de file En informatique, on définit une file comme étant une structure de données où l’on peut insérer et extraire en fonctionnant selon le principe « premier arrivé, premier servi » ou First In First Out.

On voit des files tous les jours : file d’attente à l’hôpital, file à la cafétéria, etc. On peut voir un tunnel à une voie comme étant une file. En effet, le premier véhicule à pénétrer dans le tunnel sera toujours le premier à sortir. Exemple visuel d’une file

Pour implanter une file, il faut au minimum : Un espace pour contenir des données. Un compteur d’éléments. Implantation d’une file

Nous utiliserons un tableau de 5 cases pour contenir les données et une variable pour savoir combien il y a d’éléments dans la file. Au départ, la file ressemblera à ceci : Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab??? Nb. éléments0 Implantation d’une file

Pour avoir l’effet «premier arrivé, premier servi», nous ajouterons toujours la nouvelle donnée à droite et nous retirerons toujours la donnée de gauche, donc à l’indice 0. Malheureusement, cela nous forcera à décaler les éléments… Implantation d’une file

On enfile la valeur 40. On enfile la valeur 30. On enfile la valeur 20. On enfile la valeur 10. On défile un élément. Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab??? Nb. éléments0 Visualisation du fonctionnement

D’un point de vue efficacité, le décalage des données est totalement inacceptable. C’est beaucoup trop lent! Implantation d’une file

Pour éviter de décaler les éléments, nous allons conserver une autre information pour savoir où commence la file et nous ne retirerons pas toujours à l’indice 0. Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab??? Début0 Nb. éléments0 Implantation d’une meilleure file

On enfile la valeur 40. On enfile la valeur 30. On enfile la valeur 20. On enfile la valeur 10. On défile un élément. Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab??? Nb. éléments0 Début0 Visualisation du fonctionnement

Le défi consiste maintenant à savoir où ajouter une nouvelle donnée et comment déplacer l’indice de début lors d’un défilement. Si, par exemple, l’état de la file est le suivant : Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab23??? 1 Début4 Nb. éléments3 On sait qu’il reste de la place, mais comment déterminer où ajouter le nouvel élément ? Implantation d’une meilleure file

Pour savoir où insérer le nouvel élément, on utilisera le modulo ! Implantation d’une meilleure file

On définit le modulo comme étant le reste de la division entière. Voici quelques exemples : 13 modulo 3 = 1 (puisque 13 / 3 = 4 reste 1) 39 modulo 5 = 4 (puisque 39 / 5 = 7 reste 4) 7 modulo 10 = 7 (puisque 7 / 10 = 0 reste 7) -12 modulo 10 = 8 (puisque -12 / 10 = -2 reste 8) Rappel à propos du modulo

Pour savoir où ajouter, on utilisera le calcul suivant : (Début + Nb. éléments) modulo Taille_file Dans l’exemple ci-dessous, on ajoutera à l’indice (4 + 3) modulo 5 = 2. Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab23??? 1 Début4 Nb. éléments3 Fonctionnement de la meilleure file

Pour savoir où déplacer le début en cas de défilement, on utilisera le calcul suivant : (Début + 1) modulo Taille_file Dans l’exemple suivant, on retirera à l’indice 4 et début deviendra (4 + 1) modulo 5 = 0. Tab[0]Tab[1]Tab[2]Tab[3]Tab[4] Tab23??? 1 Début4 Nb. éléments3 Fonctionnement de la meilleure file

Autres applications du modulo Si nous sommes mercredi, quel jour de la semaine serons-nous dans 40 jours ? (2 + 40) modulo 7 = 0, nous serons donc lundi. Il est 13:00. Quelle heure sera-t-il dans 40 heures? ( ) modulo 24 = 5, il sera donc 5:00. LundiMardiMercrediJeudiVendrediSamediDimanche

Autres applications du modulo Quel sera l’angle t dans 10 minutes si le point P est initialement situé à 130 o et qu’il tourne à la vitesse de 60 o par minutes ? ( *60) modulo 360 = 10 Implémentation du déplacement de PacMan dans les corridors spéciaux… La morale de cette histoire ? Derrière chaque phénomène cyclique se cache un modulo.

Cryptographie à clé publique Où M est une portion du message d’origine et C est la portion du message codé. Information publique (clé d’encryptage) : n qui est le produit de deux grands nombres premiers : n = pq. e choisi tel que pgcd (e, (p -1)(q -1) ) = 1. Information secrète (clé de décryptage) : d qui est l’inverse de e modulo (p -1)(q -1). Le calcul de la puissance est fait à l’aide de l’algorithme Modular Exponentiation.

Cryptographie à clé publique Attention! Un espion qui réussirait à factoriser n pourrait calculer immédiatement la clé de décodage d. Tout ce système repose donc sur le fait qu’il est très difficile d’obtenir la décomposition en nombres premiers des grands nombres. Voir Discrete Mathematics and its Applications, 7 e édition, K. H. Rosen, page 299 de la section 4.6 ou le site RSA Laboratories.RSA Laboratories

Par Frédérick Henri et Geneviève Savard Merci aussi à Hugues Saulnier du Service des enseignements généraux