Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: Nombre aléatoire.
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Damien Doligez <Damien.Doligez@i...>
Subject: Re: Nombre aléatoire.

[English summary:
The pseudo-random number generator does not give random numbers.
You have to initialize it, or it will always give out the same
sequence of numbers.]

>From: Patrice AUFFRET <patrice.auffret@hol.fr>
> Mais lorsque je compile le
>programme, j'obtiens toujours le meme nombre.

Eh oui, Caml est un langage déterministe, ce qui veut dire que le même
programme donne toujours le même résultat, à moins de faire des
entrées-sorties (au sens large: toute communication avec le système
d'exploitation est une entrée-sortie).

Il faut donc donner au générateur de nombres pseudo-aléatoires un
point de départ à partir duquel il pond une suite de nombres.
En général, on utilise la date et l'heure comme donnée de départ.

Le générateur ne le fait pas lui-même car il est souvent utile de
pouvoir répéter une exécution à l'identique (par exemple pour déboguer
ou pour refaire une simulation).


> Le compilateur crée un
>nombre qu'il gardera de manière permanante lors de l'exécution
>ultérieure du programme.

Pas vraiment.  Le compilateur est parfois subtil mais jamais méchant.


>Comment faire pour qu'il change à chaque
>exécution du programme compilé ?

Vous devez utiliser la fonction Random.init ou Random.full_init
(random__init, random__full_init en Caml Light).

-- Damien