Le Lièvre et la Tortue



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

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

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Commun à tous les candidats

Image d un intervalle par une fonction continue

Chapitre 2. Eléments pour comprendre un énoncé

= constante et cette constante est a.

Chapitre VI - Méthodes de factorisation

Simulation de variables aléatoires

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

Développements limités. Notion de développement limité

Les devoirs en Première STMG

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

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

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

L exclusion mutuelle distribuée

Quelques tests de primalité

Développements limités, équivalents et calculs de limites

Cours d Analyse. Fonctions de plusieurs variables

Exercices sur les équations du premier degré

Correction du baccalauréat ES/L Métropole 20 juin 2014

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Travaux dirigés d introduction aux Probabilités

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

ÉPREUVE COMMUNE DE TIPE Partie D

Cours de mathématiques

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Initiation à l algorithmique

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

CCP PSI Mathématiques 1 : un corrigé

Leçon 01 Exercices d'entraînement


Chapitre 2 Le problème de l unicité des solutions

MIS 102 Initiation à l Informatique

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Algorithmes récursifs

Introduction à l étude des Corps Finis

Chapitre 7 : Intégration sur un intervalle quelconque

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

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

Suites numériques 3. 1 Convergence et limite d une suite

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Mathématiques I Section Architecture, EPFL

Logique : ENSIIE 1A - contrôle final

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Premiers exercices d Algèbre. Anne-Marie Simon

Corrigé des TD 1 à 5

NOMBRES COMPLEXES. Exercice 1 :

Probabilités conditionnelles Exercices corrigés

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

Représentation des Nombres

La fonction exponentielle

Statistiques Descriptives à une dimension

Probabilités conditionnelles Loi binomiale

La simulation probabiliste avec Excel

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

3 Approximation de solutions d équations

Résolution d équations non linéaires

EXERCICE 4 (7 points ) (Commun à tous les candidats)

Factorisation d entiers (première partie)

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

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

Calcul fonctionnel holomorphe dans les algèbres de Banach

Processus aléatoires avec application en finance

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

Structures algébriques

Notice Générale - MODULE CLIENTS. I. Description générale du module. II. La liste des clients a. Accès

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

Resolution limit in community detection

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

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

Théorèmes de Point Fixe et Applications 1

Réalisabilité et extraction de programmes

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Calcul Formel et Numérique, Partie I

Intégration et probabilités TD1 Espaces mesurés Corrigé

Développer, factoriser pour résoudre

OLYMPIADES ACADEMIQUES DE MATHEMATIQUES. 15 mars 2006 CLASSE DE PREMIERE ES, GMF

1 Définition et premières propriétés des congruences

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

Traduction des Langages : Le Compilateur Micro Java

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

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Thèmes et situations : Achat-Vente. Fiche pédagogique

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

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Algorithmique des Systèmes Répartis Protocoles de Communications

Relation entre deux variables : estimation de la corrélation linéaire

TP N 5 EDF, compteur

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Bien gérer votre argent

Les suites numériques

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

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

Intégration et probabilités TD1 Espaces mesurés

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

Transcription:

Le Lièvre et la Tortue Épreuve pratique d algorithmique et de programmation Concours commun des Écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juin/Juillet 2012 ATTENTION! N oubliez en aucun cas de recopier votre u 0 à l emplacement prévu sur votre fiche réponse Important. Sur votre table est indiqué un numéro u 0 qui servira d entrée à vos programmes. Les réponses attendues sont généralement courtes et doivent être données sur la fiche réponse fournie à la fin du sujet. À la fin du sujet, vous trouverez en fait deux fiches réponses. La première est un exemple des réponses attendues pour un ũ 0 particulier (précisé sur cette même fiche et que nous notons avec un tilde pour éviter toute confusion!). Cette fiche est destinée à vous aider à vérifier le résultat de vos programmes en les testant avec ũ 0 au lieu de u 0. Vous indiquerez vos réponses (correspondant à votre u 0 ) sur la seconde et vous la remettrez à l examinateur à la fin de l épreuve. En ce qui concerne la partie orale de l examen, lorsque la description d un algorithme est demandée, vous devez présenter son fonctionnement de façon schématique, courte et précise. Vous ne devez en aucun cas recopier le code de vos procédures! Quand on demande la complexité en temps ou en mémoire d un algorithme en fonction d un paramètre n, on demande l ordre de grandeur en fonction du paramètre, par exemple: O(n 2 ), O(n log n),... Il est recommandé de commencer par lancer vos programmes sur de petites valeurs des paramètres et de tester vos programmes sur des petits exemples que vous aurez résolus préalablement à la main ou bien à l aide de la fiche réponse type fournie en annexe. Enfin, il est recommandé de lire l intégralité du sujet avant de commencer afin d effectuer les bons choix de structures de données dès le début.

Pour toute fonction f qui envoie un ensemble fini E dans lui-même et x 0 E, considérons la suite des valeurs de la fonction itérée : x 0, x 1 = f(x 0 ), x 2 = f(x 1 ),..., x i = f(x i 1 ),... Cette suite va atteindre deux fois la même valeur, c est-à-dire qu il existe i j tel que x i = x j. Une fois que cette collision est obtenue, la suite des valeurs va répéter le cycle des valeurs de x i à x j 1. Nous nous intéressons au problème de rechercher un cycle dans la suite des valeurs d une fonction itérée, c est-à-dire de trouver i et j étant donnés f et x 0. Le graphe de la fonction représente la forme de la lettre grecque ρ. On notera µ = i la longueur de la pré-période et λ = j i la longueur du cycle. x µ 1 x µ x µ+λ x µ+λ 1 x 1 x 0 1 Fonction aléatoire Soit g la fonction définie par g(x) = x 2 + 234 mod 32069. Considérons (u k ) k 0 la suite d entiers définie par les itérés de g : { votre u0 (À reporter sur votre fiche réponse) si k = 0 u k = g(u k 1 ) k > 0. On considère également la fonction f p qui à l entier x, associe l entier f p (x) par la formule (1) où v 0 = x mod p et v n = g(v n 1 ) : ( ) k=28 f p (x) = x + v 29 k /16035 2 k 1 mod 2 28. (1) k=1 Question 1 (u 10, f u11 (u 10 )) (u 20, f u21 (u 20 )) (u 50, f u51 (u 50 )). 1 / 4

Les parties 2, 3 et 4 sont indépendantes et il n est pas nécessaire d avoir programmé les questions de l une pour aborder les questions des autres. 2 Recherche de cycle Question 2 Trouver la longueur de la pré-période et de la période de la fonction f p(x) = f p (x) mod 10 6 itérée à partir de x 0 : x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Question à développer pendant l oral : Quelle est la complexité de votre algorithme en temps et en espace? À partir de maintenant on s intéressera aux itérés de la fonction f p et non f p. Soit la fonction et considérons h i (x) = {j < i x j mod 10 6 = x mod 10 6 } i 0 le plus petit entier tel qu il existe j h i0 (x i0 ) et x i0 = x j. Question 3 Que valent i 0 et j pour les itérés de la fonction f p et combien y a-t-il d ensembles h i0 (x) non vides pour 0 x < 10 6? x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Question à développer pendant l oral : Quelle est la complexité de votre algorithme en temps et en espace? 3 Recherche de cycle sans mémoire 3.1 Algorithme de Floyd On peut éviter d utiliser de la mémoire en employant l algorithme de Floyd. Considérons la suite y i définie par y 0 = x 0 et y i = f(f(y i 1 )). On rappelle que x i = f(x i 1 ). L algorithme calcule les valeurs de x i et y i et retourne la plus petite valeur i > 0 telle que x i = y i. Question à développer pendant l oral : Pourquoi x i se trouve-t-il dans le cycle? Expliquer pourquoi l algorithme termine et pourquoi la valeur i correspond au plus petit multiple de la période supérieur à µ. Question 4 Donner les valeurs de i et x i au moment où cet algorithme se termine pour la suite (x k ) k 0 des itérés de f p à partir de x 0 : x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Question à développer pendant l oral : Expliquer comment trouver la longueur du cycle à partir de i et x i. Prouver que x i+µ = x µ et en déduire comment trouver deux valeurs x x telles que f(x) = f(x ). Question 5 Trouver les deux valeurs x x qui sont des itérés de f p à partir de x 0 telles que f p (x) = f p (x ). x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. 2 / 4

3.2 Algorithme de Brent L algorithme de Floyd permet de trouver une valeur x i dans le cycle et ensuite la longueur du cycle et la longueur de la pré-période en considérant la suite d indices (i, 2i) et en testant l égalité x i = x 2i. L algorithme de Brent utilise la suite (i, j) et teste l égalité x i = x j. La suite (i, j) est construire en partant de (0, 1) et telle que (i, j) (i, j + 1) si j 2i (i, j) (j, j + 1) si j = 2i + 1 Question 6 Donner la valeur de i et j trouvés par cet algorithme pour la suite (x k ) k 0 des itérés de f p à partir de x 0 : x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Question à développer pendant l oral : Quel avantage voyez-vous à utiliser l algorithme de Brent par rapport à celui de Floyd? 3.3 Application à la factorisation La méthode ρ de Pollard permet de factoriser un entier N en utilisant un algorithme de recherche de cycle. Considérons la suite (x i, x j ) définie par l algorithme de Brent appliqué à la fonction suivante f(x) = (x 2 + mod N. On suppose que la suite (x i x j ) vérifie la propriété (i, j) et q > 1 tels que q divise à la fois (x i x j ) et N. Question 7 En utilisant l algorithme de Brent avec c = 11 et en partant de x 0 = 2, donner les valeurs de i, j et du facteur de N différent de 1 et N pour N = u 10 N = u 20 N = u 50. 4 Recherche de cycle dans un ensemble ordonné Nous allons dans cette section utiliser le fait que E est muni d un ordre total. Considérons l algorithme suivant qui calcule les valeurs de la suite et stocke certains (x i, i) dans un ensemble F. F est initialement vide. À l étape j, si x j est déjà présent dans F, l algorithme s arrête. Sinon, retirer de F toutes les entrées (x i, i) telles que x i > x j puis ajouter (x j, j) à F et continuer. Question à développer pendant l oral : Quelle est la propriété de la valeur sur laquelle l algorithme se termine? En déduire comment calculer la longueur du cycle. Question 8 Donner les valeurs de x i et i au moment où l algorithme se termine ainsi que la taille maximale de l ensemble F pour la suite (x k ) k 0 des itérés de f p à partir de x 0 : x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Une variante de l algorithme précédent consiste à diviser l ensemble E en K classes disjointes munies chacune de son ensemble de (x i, i). On considère ici les classes d équivalence modulo K = 1000. À l étape i, on détermine à quelle classe x i appartient et on ajoute (x i, i) à l ensemble correspondant. 3 / 4

Question 9 Donner les valeurs de x i et i au moment où l algorithme se termine pour la suite (x k ) k 0 des itérés de f p à partir de x 0 : x 0 = u 10, p = u 11 x 0 = u 20, p = u 21 x 0 = u 50, p = u 51. Question à développer pendant l oral : Quel est l intérêt de cette dernière technique par rapport à la précédente? 4 / 4

ũ 0 : 33 Fiche réponse type: Le Lièvre et la Tortue Question 1 (21181, 204597202) (2464, 106192576) (16080, 241656996) Question 2 (787, 522) (870, 969) (1195, 894) Question 3 (14587, 36854, 50009) (6189, 49088, 53820) (42258, 1691, 43087) Question 4 (36854, 190075797) (49088, 226981518) (42275, 83919148) Question 5 (161070466, 72243002) (186015437, 81988527) (15074231, 187824396) Question 6 (65535, 102389) (65535, 114623) (65535, 67226) Question 7 (59, 15, 24) (28, 1, 3) (12, 1, 3) Question 8 (9000, 82054, 19) (8823, 67529, 25) (7925, 45531, 30) Question 9 (7292928, 51441) (3000286, 55339) I / II

(112026751, 43949) II / II

Fiche réponse: Le Lièvre et la Tortue Nom, prénom, u 0 :......................................... Question 1 Question 2 Question 3 Question 4 Question 5 Question 6 Question 7 Question 8 Question 9 I / II

II / II