Bonjour. Comme dit dans le titre j'aurais besoin de vos avis sur un devoir que j'ai composé. Les codes sont en Scilab et en C mais bon...

1) Ecrire un programme scilab permettant de simuler la loi exponentielle de paramètre lambda

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
function[Y] loi_expo(lambda)
     rand('uniform')
     Y = -log(rand(1 , 1)) / lambda
endfunction
 
    loi_expo(0.5)

2.1) Ecrire un programme scilab permettant de générer n variables aléatoires suivant une loi uniforma sur [a,b]

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
function[] aleatoires(n , a , b)
    k = 1
    rand('seed' , getdate('s'))
    while(k <= n)
        rand(1 , 1) * (b - a) + a
        k = k + 1;
    end
endfunction
 
aleatoires(10 , 1 , 2)
2.2) Réécrire le programme en C

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
void aleatoires(int n , int a , int b)
{
    int i = 1;
    while(i <= n)
    {
        printf("%f" , (rand() / RAND_MAX) * (b - a) + a);
        i++;
    }
}
 
 
int main(void)
{
    srand(time(NULL));
    aleatoires(10 , 1 , 2);
    return 0;
}

3) Écrire une fonction permettant de simuler une variable aléatoire de loi binomiale...

Là j'ai foutu n'importe quoi!

Je me rends maintenant compte que j'ai oublié quelque trucs(genre caster le retour de time en double). Mais qu'en pensez vous? Le raisonnement est-il le bon?