EDI de Turbo PASCAL

(Environnement de développement intégré )

  1. Les touches spéciales du clavier :

  2. Pour créer un programme on utilise l'éditeur de texte de Turbo Pascal, on sauve le programme et enfin, on l'exécute et on peut en voir le résultat.

    dans debug/user Screen (alt F5)

  3. Pour commencer un programme :

    lancer Turbo Pascal depuis le poste de travail

    Faire File/Change dir et vérifier que vous êtes bien dans votre répertoire.

    Sinon sélectionner le votre cliquer sur Chdir puis sur OK et faire file/new pour créer un document qui sera sauvé dans votre répertoire.

  4. Avant d'exécuter votre programme, commencez toujours par le sauver (touche F2)

    Pour exécuter le programme taper sur Ctrl F9

  5. pour voir le réultat d'un programme clique sur Debug/User Screen (alt F5)

    et pour avoir en permanence la fenêtre d'édition et la fenêtre des résultats, cliquer sur Debug/output


Suites et Sommes

Suivant, précédent.

Dans une même variable, on range successivement plusieurs valeurs.
C'est à vous de savoir ce qui s'y trouve à chaque instant (le suivant ou le précédent ?).
Vérifier particulièrement les valeurs stockées au début et à la fin des boucles.

Pour calculer k = 1 n 1 k ! on a k = 1 n + 1 1 k ! = k = 1 n 1 k ! + 1 ( n + 1 ) ! avec ( n + 1 ) = ( n + 1 ) n !

que l'on comprend ainsi :

La factorielle suivante est le produit de la précédente et de l'indice suivant.

la somme suivante est le total de la somme précédente et de la factorielle suivante.

Conditions d'arrêt, valeur approchée

| u n α | ( 1 2 ) n se traduit par u n est une valeur approchée de α à ( 1 2 ) n près.
Pour calculer α à 10 3 près,il suffit de calculer u n jusqu'à ce que ( 1 2 ) n 10 3

Begin

p:=1; u:=2;

writeln('précision?'); readln(eps);

repeat

p:=p*0.5; u:=f(u);

until p<=eps

writeln(u);

End.

u n α u n + ϵ donc 0 α u n ϵ se traduit par u n est une valeur approchée de α à ϵ près .
(utilisé dans la méthode de dichotomie)

Compteur

Démarre à 0 et augmente de 1 chaque fois que nécessaire.

Cela s'utilise pour

Récursivité

Les fonctions et procédure de Pascal peuvent s'appeler elles mêmes,.

Cela permet de programmer directement la relation de récurrence mathématique :

N.B : l'ordinateur doit garder en mémoire (entasser) tous les résultats intermédiaire. On peut avoir ainsi des débordement de mémoire....

Exemple

factorielle : 0 ! = 1 et pour tout n 1 : n ! = n ( n 1 ) !
(factorielle suivante = indice suivant *factorielle précédente)
function fact(n:integer):integer;
begin
if n<0 then fact:=0;
if n=0 then fact:=1;
if n>0 then fact:=fact(n-1)*n;
end;

Exercice

Coefficients du binôme :
( n p ) = 0 si n < 0 et si p < 0
( 0 0 ) = 1 et ( 0 p ) = 0 si p 0
( n p ) = ( n 1 p 1 ) + ( n 1 p ) si n > 0
Ecrire une fonction récurrcive d'entête function bin(n,p:integer):integer;
qui calcule ( n p )

Récurrente u n + 1 = f ( u n )

Algorithme :

u:=u0 ; et on répète u:=f(u); jusqu'à la condition d'arrêt ou pour les valeurs de n nécessaires.

Récurrences à deux termes

Il faut ici des variables pour les deux précédents et le suivant.

Exemple

u 0 = 1 , u 1 = 2 et u n + 2 = u n + 1 + 2 u n
Déterminer la première valeur de n pour laquelle u n 10 :
On répète le calcul jusqu'à ce que u n + 2 10 et l'indice est celui de u n + 2


u:=1;v:=2;n:=2;
repeat
n:=n+1;w:=v+2u; u:=v; v:=w;
until w>=10;
writeln(n);


Exercice

Avec en plus l'indice dans la relation :
u 1 = 1 , u 2 = 2 et u n + 2 = 1 n u n + 1 + 2 u n pour tout n 1.
Calculer u 1 0 (sera trouvé par u 1 0 = 1 8 u 9 + 2 u 8 )

EDHEC 2006 (récursive)

  1. On considère la déclaration de fonction, en Pascal, rédigée de manière récursive :

    Function f(n : integer) : integer;
    Begin
    If (n=0) then f:=...
    else f: =...
    end;


    Compléter cette déclaration pour qu'elle renvoie n ! lorsqu'on appelle f ( n ) .

  2. On considère la déclaration de fonction récursive suivante :

    Function g (a:real ; n:integer):real;
    Begin
    If (n=0) then g: = 1
    else g: = a * g(a,n- 1);
    end ;


    Dire quel est le résultat retourné à l'appel de g ( a , n ) .

  3. Proposer un programme (sans écrire la partie déclarative) utilisant ces deux fonctions et permettant d'une part le calcul de la somme k = 0 n 1 a k k ! e a et d'autre part, à l'aide du résultat de la question 1a), le calcul et l'affichage du taux de panne à l'instant n d'une variable aléatoire suivant la loi de Poisson de paramètre a > 0 , lorsque n et a sont entrés au clavier par l'utilisateur (on supposera n 1 ).

  4. Compléter la déclaration de fonction suivante pour, qu'elle renvoie la valeur de k = 0 n 1 a k k ! e a à l'appel de sigma(a,n).

    Function sigma(a : real ; n : integer) : real;
    var k : integer;
    p: real;
    Begin
    p : = 1 ; s:=1;
    For k: = 1 to n-1 do begin p := p*a / k; s := ...; end;
    s:= ...;
    sigma: = s;
    end ;

ECRICOME 1999 second ordre

On considère la suite u définie par u 0 = a , u 1 = b et pour tout n : u n + 2 = u n + u n + 1

Ecrire un programme en Turbo Pascal qui calcule et affiche la valeur de u n pour des valeurs de a et b réelles supérieures ou égales à 1 et de n entier supérieur ou égal à 2, entrées par l'utilisateur.

ECRICOME 2007 (condition à résoudre)

Soit a un réel strictement positif. On considère la fonction f a définie pour tout réel t strictement positif par :

f a ( t ) = 1 2 ( t + a 2 t ) ainsi que la suite ( u n ) n ε de nombre réels déterminée par son premier terme u 0 > 0 et par la relation de récurrence : n    u n + 1 = f a ( u n )

on montre que | u n a | ( 1 2 ) n 1 | u 1 a |

  1. En déduire la convergence de la suite ( u n ) et indiquer sa limite.

  2. En utilisant ce qui précède, écrire un programme en langage Pascal permettant d'afficher les 100 premiers termes d'une suite ( u n ) , de premier terme 1 , convergeant vers 2 .


ESC 2006 (IAF Condition à résoudre)

Dans cette question on note ( u k ) k la suite ainsi définie : u 0 = 1 et pour tout entier naturel k , u k + 1 = e u k 2 (....)

En déduire par récurrence sur k que pour tout entier naturel k : 0 u k α 2 ( 1 e ) k .

On considère le programme Turbo-Pascal suivant: ( où trunc désigne la fonction partie entière)

program ex2 ;

var N , k : integer ; epsilon , u : real ;

begin

writeln ( ' Donnez un reel strictement positif');

readln (epsilon );

N := trunc ( - Ln (epsilon ) ) + 1 ; u ._ -1 ;

for k := 1 to N do ........................... ;

writeln(u);

end.

Montrer que l'entier naturel N calculé dans ce programme vérifie : ( 1 e ) N e p s i l o n

Compléter la partie pointillée de ce programme afin que la variable u contienne après son exécution une valeur approchée de α 2 à epsilon près.

ECRICOME 2006 (IAF condition à résoudre)

On considère la fonction f définie pour tout réel x par : . f ( x ) = x + 1 + 2 e x

On s'intéresse à la suite ( u n ) n définie par son premier terme u 0 = 1 et par la relation n u n + 1 = u n f ( u n ) f ( u n ) (...) on montre que 0 u n α 1 e 2 n 1

Écrire un programme en langage Pascal permettant, lorsque l'entier naturel p est donné par l'utilisateur, de calculer une valeur approchée de α , de telle sorte que l'on ait : 0 u n α 10 p

ECRICOME 2003 (élémentaire)

On considère les fonctions c h et s h définies sur par :

s h ( x ) = e x e x 2 et  f ( x ) = x s h ( x )

On s'intéresse dans cet exercice à la convergence de la suite ( u n ) n définie par la relation de récurrence : { u 0 = 1 n      u n + 1 = f ( u n )

  1. Ecrire un programme en Turbo-Pascal permettant de calculer et d'afficher u 1 0

EML 2002 (Dichotomie)

On considère, pour tout n * , la fonction polynomiale P n : [ 0 , + [ définie pour tout x [ 0 , + [ , par : P n ( x ) = k = 1 2 n ( 1 ) k x k k = x + x 2 2 + + x 2 n 1 2 n 1 + x 2 n 2 n

  1. (...) on a montré que sur [ 1 , + [ , P n était strictement croissante et que P n ( 1 ) < 0 et P n ( 2 ) 0

    Montrer que, pour tout n * , l'équation P n ( x ) = 0 , d'inconnue x [ 1 , + [ , admet une solution et une seule notée x n , et que : 1 < x n 2

  2. Écrire un programme en langage Pascal qui calcule une valeur approchée décimale de x 2 à 10 3 près.

ESCP 2000 (récurrence à 2 termes)

On considère la suite V = ( v n ) n 0 vérifiant v 0 = 0 , v 1 = β et, pour tout n positif, la relation v n + 2 = v n + 1 + v n

  1. Ecrire un programme en Turbo-Pascal qui lise un entier N et un réel β et qui affiche, en sortie, les N premiers termes de la suite V .

EDHEC 1999 (récurrence à 2 termes)

a 1 = 1 et b 1 = 1

(...) On montrera que : n * , a n + 1 = a n n + 1 b n ( n + 1 ) 2 et b n + 1 = b n n + 1

Ecrire un programme en Turbo Pascal qui calcule et affiche les n premiers termes de chacune des suites ( a n ) et ( b n ) pour une valeur de n entrée par l'utilisateur.

Sommes, produit (Accumulateurs)

Mathématiques : les sommes sont utilisée pour

Algorithme :

On utilise la relation de récurrence k = 1 n + 1 u k = k = 1 n u k + u n + 1

S:=0; et on répète S:=S+uu devra contenir le terme suivant.

Si le terme suivant se calcule lui même par récurrence :

S:=u0; puis répète {u:=f(u);S:=S+u;}

Probabilités

Les outils :

Tirage au hasard

randomize; initialise le générateur de nombre aléatoire : à n'utiliser qu'une seule fois en début de programme.

random(n); donne équiprobablement les entiers de [ [ 0 , n 1 ] ] .

Pour avoir un entier de [ [ 1 , n ] ] : random(n)+1.

random; donne équiproablement les réels de [ 0 , 1 [ c'est à dire qu'avec r:=random;

P (a<r and r<b)=b-a si 0 a b 1

On simule un tirage par un if (a<r and r<b)de même probabilité et incompatibilité.

Trirages sans remise

Il faut connaitre le nombre de boules de chaque type restant.

Il faut un compteur pour chaque type de boule.

Exemple :

On effectue le tirage sans remise de 50 boules parmi 2 boules rouges et 100 boules vertes.

Quelle est le nombre de rouges et de vertes obtenues.

function boule(r,v:integer):char;

begin if random<r/(r+v) then boule='R' else boule='V';

end;

donnera R avec une probabilité de r r + v et V avec une probabiltié v r + v

r:=2;v:=100; ... if boule(r,v)='R' then r:=r-1 else v:=v-1;

Nombre de

On utilise un compteur qui s'incrémente sous condition : C:=0;...; if D=6 then C:=C+1;

ou un tableau de compteurs

Exemple :

compter le nombre de 1, 2 ,...,6 obtenus dans des lancers de dé.

for i:=1 to 6 do C[i]:=0; ... D:=random(5)+1; C[D]:=C[D]+1;

Moyenne

On calcule la somme des résultat et on divise par le nombre de résultats.

Il faut un accumulateur pour la somme et un compteur pour le nombre de résultats, s'il n'est pas connu d'avance.

Exemple :

La moyenne des résultats impairs (odd) obtenus en 100 tirages:

S:=0;C:=0;randomize;

for i:=1 to 100 do

begin

D:=random(5)+1;

if odd(D) then begin c:=c+1;S:=S+D end;

end;

if C<>0 then writelen(' moyenne des impairs :';S/C) else writeln('pas d''impairs');

Maximum ou minimum

Pour déterminer le maximum ou le minimum, on initialise avec le premier, et on met à jour à chaque nouveau.

Exemple :

max et min en 10 lancers de dés :

randomize;

D:=random(5)+1;

max:=D;min:=D;

for i:=2 to 10 do

begin

D:=random(5)+1;

if D>max then max:=D;

if D<min then min:=D;

end;

writelen('maximum : ' ,max,' minimum : ',min);


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 * ), 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.

On décide de coder l'événement obtenir un "pile" par 1 et l'événement obtenir un "face" par 0.

On rappelle que la fonction random renvoie, pour un argument k de type integer (où k désigne un entier supérieur ou égal à 1 ) un entier aléatoire compris entre 0 et k 1.

  1. 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;

    begin

    randomize; z:=0;

    repeat

    z:=.........; hasard:=.........; until (hasard=1);

    writeln(z);

    end.

  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 ?


EML 2007

On a montré que Y + 1 suit une loi géométrique de paramèter e 1 .

Recopier et compléter le programme ci-dessous pour qu'il simule la variable aléatoire Y
program eml2007;

    1. var y:integer; u:real;

      begin

      randomize;

      u:=random; y:= ;

      while... do

      ... ... ...

      writeln('y vaut ', y);

      end.


D'après EML 2004

Une urne contient des boules blanches, des boules rouges et des boules vertes.

Ainsi, on a.: 0 < b < l , 0 < r < l , 0 < v < 1 avec b + r + v = 1 .

On effectue des tirages successifs avec remise et on s'arrête au premier changement de couleur.

  1. Ecrire une fonction dont l'entête est

    function aleat(b,r:real):integer;

    qui donne 1 avec une probailité de b , 2 avec une probabilité de r et 3 avec une probablité de 1 b r .

  2. Complèter le programme suivant pour qu'il affiche le rang du premier changement de couleur :

begin

writelen('proportion de rouges et de blanches ?');

readln(r,b);

randomize;

x:=aleat(r,b);

k:=...;

repeat k:=k+1 ; y:=... until ....;

writeln( 'il a fallut ',k,'lancers');

end.

EDHEC 2004

On désigne par n un entier naturel supérieur ou égal à 2.

On lance n fois une pièce équilibrée (cest-à-dire donnant pile avec la probabilité 1/2 et face également avec la probabilité 1/2), les lancers étant supposés indépendants.

On note Z la variable aléatoire qui vaut 0 si l'on n'obtient aucun pile pendant ces n lancers et qui, dans le cas contraire, prend pour valeur le rang du premier pile.

On rappelle que l'instruction random(2) renvoie un nombre au hasard parmi les nombres 0 et 1. Recopier et compléter le programme suivant pour qu'il simule l'expérience décrite ci-dessus, l'entier n étant entré au clavier par l'utilisateur (pile sera codé par le nombre 1 et face par 0).

Program EDHEC2004 ;

var k, n, z, lancer : integer ;

Begin

Randomize ;

Readln(n) ; k := 0 ; z := 0 ;

Repeat

k := k + 1 ; lancer := random(2) ;

If (lancer = 1) then .......... ;

until (lancer = 1) or (..........) ;

Writeln (z) ;

end.

HEC II 2004

Deux joueurs J et J s'affrontent dans un jeu utilisant la même expérience aléatoire que précédemment avec les règles suivantes :

On rappelle que dans un programme PASCAL, l'instruction '' r :=RANDOM(2)'' a pour effet de donner aléatoirement à la variable r la valeur 0 ou 1 , ces deux valeurs étant équiprobables.
On considère la procédure PASCAL suivante :

PROCEDURE Quigagne;

VAR x,y,r,k :INTEGER;

BEGIN

x :=0; y :=0;k :=0;

WHILE x<3 AND y<3 DO

BEGIN

k :=k+1; r :=RANDOM 2;

IF r=1 THEN

BEGIN

IF x>=1 THEN x :=2 ELSE x :=1;

IF y>=1 THEN y :=y+1;

END

ELSE

BEGIN

IF x=2 THEN x :=3

ELSE x :=0;

y :=1;

END;

END;

IF x=3 THEN WRITE (' ..... ') ELSE WRITE(' .....');}

END;

  1. Donner sous forme d'un tableau les valeurs successives prises par les variables x, y et k lors de l'exécution de cette procédure, si les valeurs données à la variable r par la fonction '' RANDOM(2)'' sont successivement :

    1. 1, 1, 1, 1, 0

    2. 1, 0, 1, 0, 0, 0, 1, 1

    3. 0, 1, 0, 1, 0, 1, 1

  2. Que représente la dernière valeur prise dans la procédure par la variable k et quels textes pourrait-on substituer aux pointillés de la dernière instruction?
    Qu'afficherait alors l'ordinateur dans les trois exemples de la question précédente ?



ESSEC 2003

On effectue des lancers successifs (indépendants) d'un dé cubique équilibré, dont les faces sont numérotées de 1 à 6, et on note X 1 , X 2 , \dots X n , \dots , les variables aléatoires donnant le numéro amené par le dé aux premier lancer, deuxième lancer, ... .


Pour tout entier naturel n non nul, on note Y n , la somme des points obtenus aux n premiers lancers.


Enfin, pour tout entier naturel k non nul, la variable aléatoire T k compte le nombre de celles des variables aléatoires Y 1 , Y 2 , \dots , Y n , \dots qui prennent une valeur inférieure ou égale à k .


Par exemple, si les cinq premiers numéros amenés par le dé sont, dans l'ordre : 3, 1, 2, 3, 6, alors les événements suivants sont réalisés : ( Y 1 = 3 ) , ( Y 2 = 4 ) , ( Y 3 = 6 ) , ( Y 4 = 9 ) , ( Y 5 = 15 ) , et les variables aléatoires T 2 , T 3 , T 9 et T 1 2 prennent respectivement pour valeurs 0, 1, 4 et 4 .

  1. Simulation informatique

    Compléter les lignes marquées par les symboles . . . du programme Pascal ci-dessous, de façon qu'il simule l'expérience aléatoire étudiée et affiche la valeur de T 1 2 .

    On rappelle que random(6) fournit un entier aléatoire parmi 0, 1, 2, 3, 4, 5 .

    Program ESSEC2003A;

    var x,y,t:integer;

    begin

    randomize;

    y:=0;t:=0;

    repeat

    x:=random(6)+1;

    y:=...;

    t:=...;

    until ...;

    writeln(T=',t-1);

    end.

ESSEC 2003

  1. On se propose de simuler informatiquement une variable aléatoire.

    On supposera que random(3) fournit au hasard un nombre élément de { 1 , 2 , 3 } et que random(2) fournit au hasard un élément de { 1 , 2 }

    program ESSEC2003
    var ini,y : integer
    begin
    ini:=random(3);
    if ini=3 then y:=random(2) else y:=3 ;
    end.

    On appelle Y le contenu de y après exécution du programme ESSEC2003.

    Donner la loi de Y , calculer et son espérance E ( Y )


Ancien : Inégalité des accroissements finis

Soit f ( x ) = 1 2 e x et u 0 = 0 et pour tout entier n , u n + 1 = f ( u n )

  1. Etude de f

    1. Déterminer le sens de variations de f .

    2. Montrer que si x [ 0 , 1 ] alors f ( x ) [ 0 , 1 ]

    3. Monter que l'équation f ( x ) = x a une unique solution α et que α [ 0 , 1 ]

    4. Montrer que | f | 0 , 5 sur [ 0 , 1 ]

  2. Convergence de u

    1. Montrer que pour tout entier n , u n [ 0 , 1 ]

    2. En déduire que pour tout entier n , | u n + 1 α | 0 , 5 | u n α | puis que | u n α | 0 , 5 n et enfin la limite de la suite u n

    3. A quelle condition u n donne-t-elle une valeur approchée de α à ϵ près ?

  3. Programmation du calcul de la valeur approchée de α

    Ecrire un programme qui calcule u n jusqu'à ce que 0 , 5 n 10 3 et affiche une valeur approchée de α à 10 3 près.

    (problème : il n'y a pas de fonciton puissance en PASCAL)

Suites adjacentes

Soit u 0 = 0 et pour tout entier n : u n + 1 = e u n . Soit f ( x ) = e x et
g ( x ) = e e x = f ( f ( x ) ) = f f ( x )

  1. Etude de f et de g

    1. Déterminer le sens de variations de f et montrer que l'éqation f ( x ) = x a une unique solution α et que α [ 0 , 1 ]

    2. Montrer que α est solution de g ( x ) = x

    3. Soit h ( x ) = g ( x ) x .

      En calculant h , montrer que g ( x ) = x n'a pas d'autre solution que α , et que si x α alors x g ( x )

  2. Etude de la suite v : v n = u 2 n

    1. Montrer que pour tout entier n , v n + 1 = g ( v n )

    2. Montrer que pour tout entier n , v n α

    3. En déduire que v est croissante et converge vers α .

  3. Etude de w n = u 2 n + 1

    1. Montrer que pour tout entier n , w n = f ( v n )

    2. Déduire de ce qui précède que w est décroissante et converge vers α

  4. Programmation du calcul d'une valeur approchée de α :

    1. Déterminer pour que v soit une valeur approchée de α à ϵ près.

    2. Ecrire un programme qui calcule et affiche une valeur approchée de α à 10 3 près.

Sommes et puissances

On note pour tout entier n : S n ( x ) = k = 0 n x k k !

  1. Limite de ( S n ( x ) ) n

    On pose pour tout entier n : f n ( x ) = e x k = 0 n x k k !  et  g n ( x ) = e x k = 0 n x k k ! ( e 1 ) x n n ! = f n ( x ) ( e 1 ) x n n !

    1. Montrer que pour tout entier n , f n + 1 ( x ) = f n ( x ) et en déduire par récurrence sur n que pour tout entier n et tout x [ 0 , 1 ] , f n ( x ) 0

    2. Montrer de même que pour tout entier n et tout x [ 0 , 1 ] , g n ( x ) 0

      et donc que f n ( x ) ( e 1 ) x n n !

    3. En déduire que pour tout x [ 0 , 1 ] : 0 e x S n ( x ) e 1 n ! x n 2 x n n !

    4. En déduire la limite de S n ( x ) quand n tend vers + .

  2. L'objet de cette partie est d'écrire un programme en PASCAL permettant de calculer une valeur approchée de e x avec la précision voulue pour x [ 0 , 1 ] .

    Remarque : dans le programme qui suit, la difficulté est de bien identifier si les variables contiennent les valeurs suivantes ou précédentes (indice k ou k + 1 )

    1. A quelle condition S n ( x ) donne-t-elle une valeur approchée de e x à ϵ près ?

      Pour ce faire, on affectera les sommes S n ( x ) à une variable S , les valeurs de k à une variable K , les valeurs de x k / k ! à une variable F et la précision voulue à une variable e p s

    2. Quelles sont pour n = 0 les valeurs de F , et de S ?

    3. Comment obtient-on x k + 1 / ( k + 1 ) ! à partir de x k / k ! ?

      Comment obtient-on la valeur suivante de F à partir de sa valeur précédente, si K contient la valeur suivante ( k + 1 ) ?

    4. Comment obtient-on la valeur suivante de S à partir de la précédente si F contient la valeur suivante ?

    5. Ecrire un programme qui demande une précision puis calcule et affiche une valeur approchée de e x à cette précision, ainsi que l'écart avec la valeyur exacte (exp(x))


Ancien : Probabilité

Simulation du hasard

Pacal dispose de la fonction Random pour simuler le hasard. Elle doit être initialisée par Randomize(une seule fois)

Nombre de succès, moyenne, max min

  1. On lance 100 fois une pièce truquée dont la probabiltié de donner Pile est 0,3.

    1. Quelle est la loi du nombre Pile obtenu ?

      Quelle est le nombre de Pile obtenus en moyenne.

    2. Ecrire un programme qui simule

      une telle série de lancers et qui affiche

      • le nombre de Pile obtenus et le nombre moyen de pile par lancer.

      • Plus compliqué : la longueur de la plus longue liste de Pile obtenus.

  2. On lance cette pièce jusqu'à obtenir Pile.

    1. Quelle est la loi du rang du premier Pile et sa moyenne ?

    2. Ecrire un programme qui simule le lancer de la pièce jusqu'à obtenir Pile et qui affiche le nombre de lancers effectués.

    3. Ecrire un programme qui simule 1000 séries lancer de la pièce jusqu'à obtenir Pile et qui affiche

      • le nombre moyen de lancers effectués

      • le temps d'attente maximum et minimum.

trirages sans remise

Pour modéliser des tirages sans remise parmi 2 boules rouges et 100 boules vertes, il faut connaitre lors de chaque tirage le nombre de boules rouges et vertes restantes.

  1. Etude théorique :

    1. Déterminer la loi de X le rang d'apparition de la première boule rouge et déterminer l'espérance de X .

    2. Soit Y le rang d'apparition de la seconde.

      Justifier ( Y = n ) = k = 0 n 1 ( V 1 \dots V k 1 R k V k + 1 \dots V n 1 ) R n et en déduire la loi de Y et calculer son espérance.

  2. Programmation :

    1. S'il y a r rouges et v vertes dans l'urnes quelle est la probabilité d'obtenir une boule rouge? Comment ontenir avec Random une telle probablité ?

    2. Ecrire un programme qui simule l'extraction des boules de l'urne jusqu'à ce qu'elle soit vide (combien de tirages?) et qui affiche le rang d'apparition de la première boule rouge et celui de la deuxième.

    3. Ecrire un programme qui recommence 100 fois ces tirages et qui affiche le rang moyen d'apparition de la première et de la seconde rouge

Plusieurs compteurs

Pour compter le nombre de sortie de chaque face d'un dé, on utilsie un tableau de compteur

var Cpt:array[1..6]of integer;

Si le résultat du dé est dans D, on augmente de le compteur D : Cpt[D]:=Cpt[D]+1

  1. On lance 100 puis 1000 puis 10000 fois un dé.

    Ecrire un programme qui totalise les sorties de chacunes des faces et qui affiche

  2. On lance trois dés.

    1. Quelle est la probabilité d'obtenir un triple 6 ? Un 421 (dans le désordre)

    2. Comment savoir si l'on a eu un ''421'' (dans le désordre) ou un ''666'' ?

    3. Ecrire un programme qui simule trois lancers de dés et qui détermine si l'on a eu 421 et si l'on a eu triple 6. De même avec 1000 fois trois lancers et en affichant le nombre moyens de 421 et de 666 obtenus.

    4. Ecrire un programme qui simule trois lancers de dés jusqu'à obtenir 421 et qui affiche le nombre de triples lancers.