Travaux Pratique 6 : Simulation d expériences aléatoires

Documents pareils
Examen Médian - 1 heure 30

Corrigé des TD 1 à 5

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

Probabilités Loi binomiale Exercices corrigés

Enseignement secondaire technique

Application 1- VBA : Test de comportements d'investissements

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Propagation sur réseau statique et dynamique

Algorithmes et programmation en Pascal. Cours


1. Structure d'un programme FORTRAN 95

Cours Informatique Master STEP

Probabilités conditionnelles Loi binomiale

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

Arbre de probabilité(afrique) Univers - Evénement

Algorithmique & programmation

Fluctuation d une fréquence selon les échantillons - Probabilités

Initiation à la programmation en Python

Cours d algorithmique pour la classe de 2nde

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Simulation de variables aléatoires

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Programmation structurée et algorithmes de base en Pascal

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

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

Génie Logiciel avec Ada. 4 février 2013

PROBABILITÉS CONDITIONNELLES

Algorithmique et Programmation, IMA

POKER ET PROBABILITÉ

0 si a=b. Si a^ et b^ sont deux éléments différents du même anneau, alors le résultat de

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Algorithmique et programmation : les bases (VBA) Corrigé

Organigramme / Algorigramme Dossier élève 1 SI

1 Recherche en table par balayage

Coefficients binomiaux

TD3: tableaux avancées, première classe et chaînes

Exercices de dénombrement

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

P1 : Corrigés des exercices

Exercices sur le chapitre «Probabilités»

Qu est-ce qu une probabilité?

Java Licence Professionnelle CISII,

Jean-Philippe Préaux

Ordonnancement temps réel

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

Probabilités sur un univers fini

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

Cours de Probabilités et de Statistique

1/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)

Programmation C++ (débutant)/instructions for, while et do...while

Compilation (INF 564)

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Plan. 5 Actualisation. 7 Investissement. 2 Calcul du taux d intérêt 3 Taux équivalent 4 Placement à versements fixes.

I. Cas de l équiprobabilité

Recherche dans un tableau

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur)

TRIGONOMETRIE Algorithme : mesure principale

Cours de Systèmes d Exploitation

La simulation probabiliste avec Excel

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Feuille d exercices 2 : Espaces probabilisés

L E Ç O N. Marches aléatoires. Niveau : Terminale S Prérequis : aucun

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

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Probabilités. C. Charignon. I Cours 3

Probabilités. Une urne contient 3 billes vertes et 5 billes rouges toutes indiscernables au toucher.

Pourquoi l apprentissage?

Arbres binaires de recherche

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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

ACTIVITÉ DE PROGRAMMATION

# 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>

Travaux dirigés d introduction aux Probabilités

Découverte de Python

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

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

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

I. Introduction aux fonctions : les fonctions standards

TP 1. Prise en main du langage Python

Statistiques Décisionnelles L3 Sciences Economiques & Gestion Faculté d économie, gestion & AES Université Montesquieu - Bordeaux

Rappels sur les suites - Algorithme

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Probabilités. I - Expérience aléatoire. II - Evénements

Probabilités (méthodes et objectifs)

Programmation sous Delphi

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Logiciel Libre Cours 2 Fondements: Programmation

Algorithmique avec Algobox

Cours 7 : Utilisation de modules sous python

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

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

Paginer les données côté serveur, mettre en cache côté client

Transcription:

Travaux Pratique 6 : Simulation d expériences aléatoires Exercice 1: Lancer de dé a) Ecrire un programme qui renvoie le résultat d un lancer de dé à 6 faces équilibrées; autrement dit écrire un programme qui simule un lancer de dé. b) Compléter le programme précédent pour qu il simule une série de 10 lancers de dés. c) Le compléter encore pour qu il affiche la somme des résultats de ces 10 lancers. Exercice 2: Lancer de pièce a) Ecrire un programme qui simule un lancer de pièce équilibrée. On pourra représenter pile par 1 et face par 0. b) Transformer le programme pour qu il simule un lancer de pièce où la probabilité d obtenir pile est 1/3. c) Ecrire le programme complet, qui demande p à l utilisateur, et qui simule un lancer de pièce truquée où la probabilité d obtenir pile est p. Exercice 3: Temps d attente du premier 5 a) Ecrire un programme qui simule et affiche des lancers de dé (à 6 faces) jusqu à l obtention du premier 5. b) Compléter le programme précédent pour qu il renvoie le rang du premier lancer où l on obtient 5. Exercice 4: Nombre de faces a) Rappeler l instruction en Pascal qui simule un lancer de pièce où la probabilité d obtenir face est 0,4. b) L intégrer dans un programme qui demande à l utilisateur un entier n et qui renvoie le nombre de face obtenus en n lancers. Exercice 5: Edhec 2007 On lance une pièce équilibrée et on note Z la variable aléatoire égale au rang du lancer où l on obtient le premier pile. Après cette série de lancers, si Z a pris la valeur k (k N ), on remplit une urne de k boules numérotées 1, 2,, k, puis on extrait au hasard une boule de cette urne. On note X la variable aléatoire égale au numéro de la boule tirée après la procédure décrite ci-dessus. 1. On décide de coder l événement obtenir un pile par 1 et l événement obtenir un face par 0. Compléter le programme suivant pour qu il affiche la valeur prise par Z lors de la première partie de l expérience décrite ci-dessus. Program edhec 2007; Var z,hasard:integer; z:=0; repeat z:=...; hasard:=...; until (hasard=1); writeln(z); 2. Quelle instruction faut-il rajouter avant la dernière ligne de ce programme pour qu il simule l expérience aléatoire décrite dans ce problème et affiche la valeur prise par la variable aléatoire X? Exercice 6: Simulation du temps d attente jusqu au n ie succès On effectue des lancers successifs d un dé honnête. On note X 1, resp. X 2, resp. X n, la variable aléatoire égale au nombre de lancers effectués jusqu à l obtention du premier, resp. second, resp. n ie 6. 1. Ecrire un programme Turbo-Pascal qui simule cette expérience, et qui affiche les résultats successifs ainsi que la valeur de X 1. On pourra présenter les résultats sous la forme : 2 5 4 1 1 3 6; X=7. 2. Modifier le programme précédent afin qu il affiche la valeur de X 2. 3. Ecrire alors un programme Turbo-Pascal qui demande n N à l utilisateur, puis qui simule cette expérience en affichant la valeur de X n. Exercice 7: expérience Edhec 2000 Soit n 2. On lance n fois une pièce truquée donnant Pile avec la probabilité p ]0,1[ et Face sinon. Pour tout entier naturel k 2, on dit que le k ième lancer est un changement s il amène un résultat différent de celui du (k 1) ième lancer. On note X n la variable aléatoire égale au nombre de changements survenus. 1. On décide de coder Pile par 0 et Face par 1. Ecrire une fonction Turbo-Pascal lancer, qui simule un lancer de pièce.

2. L intégrer dans un programme Turbo-Pascal qui demande n et p à l utilisateur et qui affiche la valeur prise par la variable X n. Exercice 8: Edhec 2005 Un mobile se déplace sur les points à coordonnées entières d un axe d origine 0. Au départ, le mobile est à l origine. Le mobile se déplace selon la règle suivante : s il est sur le point d abscisse k à l instant n, alors, à l instant (n+1) il sera sur le point d abscisse (k +1) avec la probabilité 1 3 ou sur le point d abscisse 0 avec la probabilité 2 3. Pour tout n de N, on note X n l abscisse de ce point à l instant n et l on a donc X 0 = 0. Par ailleurs, on note T l instant auquel le mobile se trouve pour la première fois à l origine (sans compter son positionnement au départ). 1. Compléter le programme suivant pour qu il simule l expérience aléatoire étudiée et affiche la valeur prise par X n pour une valeur de n entrée par l utilisateur. Program edhec2005; Var k, n, u, X : integer; Readln(n); Randomize; X:=O; For k:=1 to n do u :=random(3); if (u=2) then X :=...; else X :=...; Writeln (X); 2. Modifier le programme précédent afin qu il simule l expérience étudiée mais qu il affiche la valeur prise par la variable T. Exercice 9: Deux personnes P 1 et P 2 ont rendez-vous dans un complexe formé de 5 sites S 1, S 2,..., S 5, disposés en pentagone et reliés par des routes, comme l illustre le schéma ci-contre. Ils arrivent au rendez-vous à l heure prévue, mais suite à un malentendu, P 1 se présente au site S 1 et P 2 au site S 2. Ils décident alors de partir à la recherche l un de l autre. Ils empruntent les différentes routes du site avec les règles suivantes : à partir d un site, chacun choisit de se rendre sur l un des deux sites voisins, les deux possibilités étant équiprobables; les déplacements des deux personnes se font simultanément, et indépendamment. Ils continuent à se déplacer ainsi jusqu à se retrouver éventuellement sur un même site (ils ne se rencontrent pas le long des routes). Une fois retrouvés, ils ne se déplacent plus. 1. Compléter le programme suivant, afin de simuler l expérience décrite ci-dessus. Var i,j,k : integer; Begin Randomize; i:=1;j:=2; k:=...; While... Do Begin... writeln( après,k, déplacements P1 est en S,i, et P2 en S,j); writeln( les deux personnes se retrouvent après,k, déplacements); End. 2. En moyenne, combien faut-il de déplacements pour qu ils se rencontrent? (On complètera le programme précédent, afin d obtenir informatiquement une valeur approchée de cette moyenne). 3. Comment évolue cette moyenne en fonction des points de départ de ces deux personnes? 4. Que se passerait-il si le complexe était en forme d hexagone ou de carré? 5. **Comment évolue la moyenne si on suppose qu à chaque déplacement (excepté le premier) le choix de la direction n est plus équiprobable, mais qu il y a une chance sur trois de revenir sur ses pas, et deux chances sur trois d aller dans la nouvelle direction?

CORRECTION TP 6 Exercice 1 : PROGRAM de; VAR i,somme,lancer : INTEGER; somme:=0; FOR i:=1 TO 10 DO lancer:=random(6)+1; variante : die:=random(6); writeln(lancer); if die =0 then die :=6; somme:=somme+lancer; writeln( La somme des lancers est S=,somme,. ); Exercice 2 : a) Dans le cas d une pièce équilibrée : piece := random(2); c) Dans le cas d une pièce truquée : PROGRAM piece; VAR lancer : INTEGER; p : REAL; writeln( Entrer p ); readln(p); IF random<p THEN lancer:=1 else lancer:=0; writeln(lancer); Exercice 3 : PROGRAM attente; VAR i,lancr,rang : INTEGER; p : REAL; rang:=0; REPEAT rang:=rang+1; lancer:=random(6)+1; write(lancer); UNTIL lancer=5; writeln( Le premier rang d apparition du 5 est,rang); Exercice 4 : on peut décider de représenter face par 1 et pile par 0. Alors PROGRAM nbre faces; VAR i,n,nbface : INTEGER; FUNCTION piece:integer; if random<0.4 then piece:=1 else piece:=0; writeln( Entrer le nombre de lancers n= ); readln(n); nbface:=0; FOR i:=1 TO n DO IF piece=1 THEN nbface:=nbface+1; writeln( En,n, lancers, il y a eu,nbface, faces ); OU nbface:=0; FOR i:=1 TO n DO nbface:=nbface+piece; writeln( En,n, lancers, il y a eu,nbface, faces );

Exercice 5 : REPEAT z:=z+1; hasard:=random(2); UNTIL (hasard=1); WRITELN(z); X:=1+random(z-1); WRITELN(X); Exercice 6 : x:=0; nbre6:=0; REPEAT d:=random(6)+1; write(d,,); x:=x+1; if d=6 then nbre6:=nbre6+1; UNTIL nbre6=2; write( ; X=,x); Exercice 7 : PROGRAM edhec2000; VAR k,n,nbre :INTEGER; p,x,y:real; FUNCTION lancer(p:real):integer; If random<p then lancer:=0 else lancer:=1; write( donner n et p ); readln(n,p); x:=lancer; nbre:=0; FOR k:=2 TO n DO y:=lancer; If x<>y then nbre :=nbre+1; x:=y; write(nbre); Exercice 8 : 1. if (u=2) then X:=X+1 else X:=0; 2. Version longue : X:=0; T:=0; REPEAT T:=T+1; u:=random(3); if (u=2) then X:=X+1 else X:=0; UNTIL X=0; Version courte (sans simuler X) : T:=0; Repeat T:=T+1; u:=random(3); UNTIL (u<= 1); Exercice 9 : 1. i:=1;j:=2;k:=0; WHILE i<>j DO r:=random(2); if r=0 then r:=-1; Variante : r:=-1+2*random(2); i:=i+r; if i=0 then i:=5 else if i=6 then i:=1; s:=random(2); if s=0 then s:=-1; j:=j+s; if j=0 then j:=5 else if j=6 then j:=1; 2. Rajouter une boucle FOR qui fait 100 fois de suite cette expérience, puis prendre la moyenne des nombres de déplacements obtenus : moy:=0; FOR l:=1 TO 100 DO i:=1;j:=2;k:=0; WHILE i<> j DO... moy:=moy+k; write(moy/100); 3. On trouve une moyenne d environ 12 déplacements en partant de (1,2) et de 8 déplacements en partant de (1,3). Ensuite par symétrie, on se ramène à l un ou l autre cas!

4. Si le complexe est en forme d hexagone ou de carré (ou plus généralement, si il y a un nombre pair de routes), il est impossible que les personnes se rencontrent... 5. Il faut stocker la nature des déplacements, donc il faut deux variables de plus : notons les Di et Dj. Par ailleurs, on suppose que pour leur premier déplacement, il y a équiprobabilité dans le choix de la direction : il faut donc faire ce premier déplacement, avant de rentrer dans la boucle while. Par souci de clarté, j ai modifié le programme de la première question (et non celui de la deuxième question) : program simulationbis; uses wincrt; var i,j,k,di,dj:integer; i:=1;j:=2;k:=0; if random(2)=0 then Di:=1 else Di:=-1; if random(2)=0 then Dj:=1 else Dj:=-1; i:=i+di; j:=j+dj; if i=6 then i:=1; if i=0 then i:=5; if j=6 then j:=1; if j=0 then j:=5; while i<>j do k:=k+1; if random<1/3 then Di:=-Di; { on revient en arrière ssi Di est modifié } if random<1/3 then Dj:=-Dj; i:=i+di; j:=j+dj; if i=6 then i:=1; if i=0 then i:=5; if j=6 then j:=1; if j=0 then j:=5; writeln( après,k, déplacements P1 est en S,i, et P2 en S,j); writeln( rencontre au bout de,k, déplacements ); Le temps moyen avant rencontre est plus court : moins de 8.5 déplacements en moyenne (contre 12)... comme quoi ca sert parfois de réfléchir...