INFORMATIQUE, CALCUL & COMMUNICATIONS. Sections MA & PH. Correction Examen intermédiaire I

Documents pareils
Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Les arbres binaires de recherche

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

Comparaison de fonctions Développements limités. Chapitre 10

Représentation d un entier en base b

Programmation linéaire

Conversion d un entier. Méthode par soustraction

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

Algorithmique et Programmation, IMA

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

1 Recherche en table par balayage

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

I- Définitions des signaux.

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Représentation des Nombres

Logiciel de Base. I. Représentation des nombres

Licence Sciences et Technologies Examen janvier 2010

Chapitre 10 Arithmétique réelle

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Algèbre binaire et Circuits logiques ( )

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

ASR1 TD7 : Un microprocesseur RISC 16 bits

Rappels sur les suites - Algorithme

Recherche dans un tableau

L exclusion mutuelle distribuée

Chapitre 7. Récurrences

PROGRAMMATION I & II. Présentation générale des cours

Correction TD algorithmique

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Résolution d équations non linéaires

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

Quelques algorithmes simples dont l analyse n est pas si simple

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Glossaire des nombres

Initiation à l algorithmique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Algorithme. Table des matières

Cours de Probabilités et de Statistique

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Priorités de calcul :

Algorithmes récursifs

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Fibonacci et les paquerettes

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

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Programmation C. Apprendre à développer des programmes simples dans le langage C

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

MT940-MultiLine. Formats. Version 3.02 du 17/01/2013. Sommaire: Extraits de compte (Formats utilisés) 2

Probabilités sur un univers fini

Transmission d informations sur le réseau électrique

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Représentation d un nombre en machine, erreurs d arrondis

Parallélisme et Répartition

Cours d algorithmique pour la classe de 2nde

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Corrigé des TD 1 à 5

Informatique Générale

Fonctions homographiques

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

Feuille TD n 1 Exercices d algorithmique éléments de correction

Rappels Entrées -Sorties

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Introduction à l étude des Corps Finis

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

Etude de fonctions: procédure et exemple

Cours d Informatique

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Suites numériques 4. 1 Autres recettes pour calculer les limites

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Cours 7 : Utilisation de modules sous python

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Chapitre 5 : Flot maximal dans un graphe

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Solutions du chapitre 4

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

Qu est-ce qu une probabilité?

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

La couche physique de l ADSL (voie descendante)

Objets Combinatoires élementaires

Initiation au binaire

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Par combien de zéros se termine N!?

1 Introduction au codage

Cryptographie et fonctions à sens unique


Quelques tests de primalité

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Algorithmique et structures de données I

CFD Parapente RÈGLEMENT 2011 / 2012

données en connaissance et en actions?

Transcription:

Correction EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communications Cours ICC aux sections MA et PH Chappelier J.-C. FÉ DÉR A L E D E L A U S A N N E INFORMATIQUE, CALCUL & COMMUNICATIONS Sections MA & PH Correction Examen intermédiaire I Instructions : SUJET 1 Vous disposez d une heure quinze minutes pour faire cet examen (15h15-16h30). L examen est composé de parties : un questionnaire à choix multiples, à 1 points, prévu sur 45 minutes, et une partie à questions ouvertes, à 8 points, prévue sur 30 minutes. Mais vous êtes libres de gérer votre temps comme bon vous semble. AUCUN DOCUMENT N EST AUTORISÉ, NI AUCUN MATÉRIEL ÉLECTRO- NIQUE. Pour la première partie (questions à choix multiples), chaque question n a qu une seule réponse correcte parmi les quatre propositions. Indiquez vos réponses en bas de cette page en écrivant clairement pour chaque question une lettre majuscule parmi A, B, C et D. Aucune autre réponse ne sera considérée, et en cas de rature, ou de toute ambiguïté de réponse, nous compterons la réponse comme fausse. (Vous êtes autorisés à dégrafer cette page) Pour la seconde partie, répondez directement sur la donnée, à la place libre prévue à cet effet. Toutes les questions comptent pour la note finale. NOTE : dans cet examen, le premier élément d une liste L est noté L[1]. Réponses aux quiz : Reportez ici en majuscule la lettre de la réponse choisie pour chaque question, sans aucune rature. 1 3 4 5 6 7 8 9 10 11 1 A B A C B C B C A D B A

1 Des problèmes... [ points] PARTIE QUIZ Question 1) Parmi les affirmations suivantes, laquelle est vraie? A] P NP B] NP P C] NP est l ensemble des problèmes insolubles par l informatique D] NP n est pas dans P Question ) On considère une collection d objets plats posés sur une table, ne se touchant que par des cotés (c.-à-d. en contact par des segments ; pas de contact ponctuel, «en pointe»). Le problème consistant à déterminer s il est possible de colorier une telle collection d objets sans jamais attribuer la même couleur à deux objets qui se touchent est : A] dans P pour et 3 couleurs et dans NP pour 4 couleurs B] dans P pour et 4 couleurs et dans NP pour 3 couleurs C] dans P pour couleurs et dans NP mais pas dans P pour 3 et 4 couleurs D] dans P pour et 4 couleurs et dans NP mais pas dans P pour 3 couleurs Des caractères... [3 points] L algorithme ci-dessous prend en entrée une «chaînes de caractères» s. On notera s i le i e caractère de s (à partir de 1). «s i s j» est donc la sous-chaîne de s allant de son i e à son j e caractère. Si i > j, «s i s j» représentera par convention la chaîne vide. Par exemple, si s est «examen», s 3 est le caractère a, «s 3 s 6» est la chaîne «amen» et «s 4 s 3» est la chaîne vide. sékoi entrée : chaîne de caractères s Si t < Si s 1 = s t sortir : sékoi(s s t 1 ) Sinon Question 3) sékoi(kayak) : A] renvoie «oui» B] renvoie «non» C] ne renvoie rien D] ne se termine pas suite au dos

Question 4) Si t est la taille du message s et si la complexité de la fonction taille est en O (1), la complexité de sékoi est : A] O (log t), mais pas O (1) C] O (t), mais pas O (log t) B] O (t log t), mais pas O (t) D] O ( t ), mais pas O (t) Question 5) Lequel des algorithmes suivants est correct et résout le même problème que sékoi? Note : La notation x représente la «partie entière par défaut» de x, c.-à-d. le plus grand entier inférieur ou égal à x, et x la «partie entière par excès», c.-à-d. le plus petit entier supérieur ou égal à x. Par exemple 1.5 = 1, 1 = 1, 1.5 = et 1 = 1. A] algo1 entrée : message s Pour i de 1 à t Si s i et s t+1 i sont égaux algo3 entrée : message s Pour i de 1 à t Si s i et s t+1 i sont différents algo entrée : message s Pour i de 1 à t Si s i/ et s (t i)/ sont différents algo4 entrée : message s Si s 1 et s t sont différents sortir : algo4(s s t 1 ) Sinon Si t Sinon C] D] 3 Des nombres... [3 points] Question 6) En prenant une représentation signée des nombres entiers en binaire sur 4 bits, 1000 représente : A] 0 B] 8 C] 8 D] 7 Question 7) On s intéresse ici à la représentation en virgule flottante vue en cours mais utilisant ici 3 bits pour l exposant (strictement positif) et 3 bits pour la mantisse. Avec une telle représentation, écrite dans l ordre signe, exposant, mantisse, que vaut l addition de 0010011 et 1001001? A] 0010110 B] 0001101 C] 1011010 D] 1011100 Question 8) Combien de bits sont différents entre les représentations binaires de 144 et 15 (représentations de nombres entiers)? A] 8 B] C] 6 D] 4

4 Des algorithmes... [4 points] Question 9) Les différents états intermédiaires de L dans l algorithme suivant : appliqué à l entrée (1, 0, 1, 1) sont : késako entrée : L liste de 0 et de 1? l taille(l) Tant que l 1 et L[l] = 1 L[l] 0 l l 1 Si l = 0 ajouter 1 au début de L Sinon L[l] 1 A] (1, 0, 1, 1), (1, 0, 1, 0), (1, 0, 0, 0), (1, 1, 0, 0) B] (1, 0, 1, 1), (1, 0, 1, 0), (1, 0, 0, 0), (1, 1, 0, 0), (0, 1, 0, 0) C] (1, 0, 1, 1), (1, 0, 1, 0), (1, 0, 0, 0), (0, 0, 0, 0), (1, 0, 0, 0, 0) D] (1, 0, 1, 1), (0, 0, 1, 1), (0, 1, 1, 1) Question 10) Note : Pour un ensemble fini E, la notation E représente son cardinal, i.e. son nombre d éléments. Que calcule/renvoie l algorithme suivant : safékoi entrée : Deux ensemble finis E 1 et E? l 1 E 1 l E w vrai Pour u de 1 à l 1 x faux Pour v de 1 à l Si E 1 [u] = E [v] x vrai Si x est faux sortir : x sortir : w A] E 1 E B] E 1 E C] E 1 < E D] E 1 E suite au dos

Question 11) Considérez un algorithme qui affiche la liste de tous les entiers entre 1 et n! (factorielle n). En fonction de la taille de cette liste, la complexité temporelle pire cas de cet algorithme est : A] au plus constante B] au moins linéaire C] au moins quadratique D] au moins exponentielle Question 1) Soit L b (n) le nombre de symboles/chiffres de l écriture d un nombre entier n en base b, avec b. Quelle proposition est vraie? A] L b (n) est en O (log(n)) mais pas en O (1) B] L b (n) est en O (b n) mais pas en O (log(n)) C] L b (n) est en O ( n b) mais pas en O ( n b 1) D] L b (n) est en O (b n ) mais pas en O ( b n 1)

PARTIE EXERCICES 5 Deux algorithmes [4 points] Considérons le deux algorithmes suivants : algo1 t taille(l) Pour i de 1 à t 1 k i Pour j de i + 1 à t Si L[j] < L[k] k j b L[i] L[i] L[k] L[k] b algo t taille(l) Pour i de à t a L[i] j i Tant que j > 1 et L[j 1] > a L[j] L[j 1] j j 1 L[j] a Question 13) Quels sont les différents états intermédiaires de la liste L = (, 4, 3, 7, 1) lors du déroulement de l algorithme «algo1»? Réponse : (, 4, 3, 7, 1), (1, 4, 3, 7, ), (1,, 3, 7, 4), (1,, 3, 4, 7) BARÈME : 1 point. Etat final : 0.5, le reste sur 0.5 si parfait, 0.5 si semble compris mais petite faute, 0 si n a rien compris. Question 14) En supposant que le calcul de la taille est au plus linéaire, donner la complexité de chacun des deux algorithmes (en notation de Landau, la plus petite possible). Précisez ce que représente la variable utilisée dans cette notation. «algo1» : O(n ), où n est la taille de la liste en entrée. «algo» : aussi O(n ) BARÈME : 1 point. 0.4 chacun, 0. pour préciser la variable. Question 15) Supposons que l accès à un élément quelconque de la liste soit une opération en temps constant par rapport à la taille de la liste. L un de ces algorithmes est-il plus efficace que l autre en nombre d opérations dans le pire des cas? Si oui, lequel? Justifiez pleinement votre réponse. Réponse : Non, les deux ont exactement la même complexité car rechercher le minimum est aussi couteux que déplacer une valeur de proche en proche. On peut calculer le nombre d opération de manière exacte et trouver 7n + O (n) pour «algo1» et «algo» (ou en tout cas le même coefficient de n ; nous avons ici compté 1 pour chaque lecture/écriture de valeur) : «algo1» : n 1 O (n) + i=1 n j=i+1 n 1 n 1 4 + 8 = O (n) + 4(n i) + 8 = (n 1)(4n + 8) i = 4n + O (n) i=1 i=1 n(n 1) = 7n + O (n)

«algo» : O (n) + n 7i + 6 = O (n) + 7 i= n i= n(n + 1) i = O (n) + 7 ( 1) = 7n + O (n) BARÈME : points. 1 point pour chaque justification. 6 Sous-séquences [4 points] Question 16) Ecrire un algorithme qui, dans une liste de nombres (positifs et négatifs), retourne la 1 sous-liste (éléments consécutifs) dont la somme est maximale. Par exemple, pour la liste (, 1, 3, 4, 1,, 1, 5, 4), la sous-liste de somme maximale est (4, 1,, 1) (et sa somme est 6). Réponse : Voici l algorithme peut être le plus simple à imaginer, en O ( n 3) : Tranche de somme maximale sortie : sous-liste de L de somme maximale n taille(l) Si n 1 extreme L[1] start 1 end 1 Pour i de 1 à n Pour j de i à n current 0 Pour k de i à j current current + L[k] Si current > extreme extreme current start i end j sortir : (L[start],..., L[end]) Voici une version simplifiée en O ( n ) qui exploite le fait que l on travaille sur des sous-listes (pas la peine de recalculer la partie commune) : 1. Une quelconque s il y en a plusieures.

Et voici une solution en O (n) : Tranche de somme maximale sortie : sous-liste de L de somme maximale n taille(l) Si n 1 extreme L[1] start 1 end 1 Pour i de 1 à n current 0 Pour j de i à n current current + L[j] Si current > extreme extreme current start i end j sortir : (L[start],..., L[end]) Tranche de somme maximale sortie : sous-liste de L de somme maximale n taille(l) Si n 1 current L[1] extreme current pos_start 1 start pos_start end 1 Si 0 > current current 0 pos_start Pour i de à n current current + L(i) Si current > extreme extreme current start pos_start end i Si 0 > current current 0 pos_start i + 1 sortir : (L[start],..., L[end]) BARÈME : 3 points : 1 pt pour une somme de sous-liste, 1 pt pour l extremum, 1 pt pour la combinaison du tout. Question 17) Quelle est la complexité de votre algorithme? BARÈME : 1 point.