On veut tirer au hasard 0 ou 1 (par exemple 0=pile et 1=face).
On utilise la fonction rand(n) qui renvoie un entier aléatoire
uniformément distribué dans 0.. n-1.
On tape :
tirage_piece():=rand(2);
On veut tirer au hasard un nombre entier dans [1.. 6].
On utilise la fonction rand(n) qui renvoie un entier aléatoire
uniformément distribué dans 0.. n-1.
On tape :
tirage_de():=1+rand(6);
On tire au hasard un nombre entier n de [0,1,2,3].
On tire au hasard un nombre réel m de [0,1[.
On veut simuler une variable aléatoire X qui vaut
la partie entière de m*n.
On utilise la fonction rand(p,n) qui renvoie un réel aléatoire
uniformément distribué dans [p.. n[.
On tape :
X():={ local n; n:=rand(4); return floor(n*rand(0,1)); }
Quelle est la fonction de répartition de X ?
X vaut :
0 si ((n=0 ou n=1) et m ∈ [0,1[) ou (n=2 et m ∈ [0,0.5[) ou
(n=3 et m ∈ [0,1/3[)
1 si (n=2 et m ∈ [0.5,1[) ou (n=3 et m ∈ [1/3,2/3[)
2 si n=3 et m ∈ [2/3,1[
On a donc :
Proba(X=0)=1/4+1/4+1/4*1/2+1/4*1/3=17/24
Proba(X=1)=1/4*1/2+1/4*1/3=5/24
Proba(X=2)=1/4*1/3=1/12
On vérifie que l’on a : 17/24+5/24+1/12=1
On tire au hasard un nombre entier n de [1,2,3].
On veut simuler une variable aléatoire Y qui vaut ∑j=1nj.
On tape :
Y():={ local n,j,x; n:=1+rand(3); x:=0; pour j de 1 jusque n faire x:=x+j; fpour; return x; }:;
Quelle est la fonction de répartition de Y ?
Y vaut :
1 si n=1
3 si n=2
6 si n=3
On a donc :
Proba(X=1))=1/3
Proba(X=3))=1/3
Proba(X=6))=1/3
On aurait pu aussi simuler cette loi en tapant :
Z():={ local n; n:=rand(3); si n==0 alors return 1 fsi; return 3*n; }:;
On veut écrire √a+√b sous la forme √x/2+√y/2 bien
sur quand cela est possible.
Si √x/2+√y/2=√a+√b on a :
(√x/2+√y/2)2=a+√b=(x+y)/2+√xy
d’où x+y=2a et xy=b
donc x et y sont solutions de l’équation X−2aX+b=0
donc si a2−b est un carré parfait i.e. a2−b=c2 avec c entier on a :
x=a+c et y=a−c
Donc si a2−b est un carré parfait on a si a2−b=c2 :
|
| = |
|
| + |
|
| = |
|
On tape la fonction simply qui doit avoir r=sqrt(a+sqrt(b)) comme paramètre où b est sans facteur carré :
simply(r):={ local f,a,b,c,d; si sommet(r)=='^' alors f:=feuille(r); a,d:=feuille(f[0]); si type(a)==integer alors b:=feuille(d)[0]; c:=sqrt(a^2-b); si (round(c))^2==a^2-b alors retourne sqrt((a+c)/2)+sqrt((a-c)/2) fsi; sinon d,a:=feuille(f[0]); b:=feuille(d)[0]; c:=sqrt(a^2-b); si (round(c))^2==a^2-b alors retourne sqrt((a+c)/2)+sqrt((a-c)/2) fsi; fsi; fsi; retourne r; }:;
On tape :
simply(sqrt(9+sqrt(17)))
ou
simply(sqrt(sqrt(17)+9))
On obtient :
(sqrt(34))/2+(sqrt(2))/2
on tape la fonction simplyf qui doit avoir comme paramètre
r de la forme sqrt(a+s*sqrt(b)) ou sqrt(a+sqrt(b)):
simplyf(r):={ local f,a,b,c,d,s,sb; si sommet(r)=='^' alors f:=feuille(r); a,d:=feuille(f[0]); si type(a)==integer alors f:=feuille(d); si f[1]==1/2 alors s:=1; b:=f[0]; sinon s,sb:=f; si type(s)==integer alors b:=feuille(sb)[0]; sinon sb,s:=f; b:=feuille(sb)[0]; fsi; fsi; c:=sqrt(a^2-s^2*b); si (round(c))^2==a^2-s^2*b alors retourne sqrt((a+c)/2)+sqrt((a-c)/2); fsi; sinon d,a:=feuille(f[0]); f:=feuille(d); si f[1]==1/2 alors b:=f[0]; s:=1; sinon s,sb:=f; si type(s)==integer alors b:=feuille(sb)[0]; sinon sb,s:=f; b:=feuille(sb)[0]; fsi; fsi; c:=sqrt(a^2-s^2*b); si (round(c))^2==a^2-s^2*b alors retourne sqrt((a+c)/2)+sqrt((a-c)/2); fsi; fsi; fsi; retourne r; }:;
On tape (car Xcas remplace sqrt(128) par 8*sqrt(2) :
simplyf(sqrt(18+sqrt(128)))
ou
simplyf(sqrt(sqrt(128)+18))
ou
simplyf(sqrt(8*sqrt(2)+18))
ou
simplyf(sqrt(18+8*sqrt(2)))
ou
simplyf(sqrt(sqrt(2)*8+18))
ou
simplyf(sqrt(18+sqrt(2)*8))
On obtient :
4+sqrt(2)
On tape :
simplyf(sqrt(194320499737857776523212040+19713979797994*sqrt(97160249868928888261606031)))
On obtient :
sqrt(97160249868928888261606031)+9856989898997