Re: Nombre aléatoire.

From: Damien Doligez (Damien.Doligez@inria.fr)
Date: Sat May 23 1998 - 16:00:40 MET DST


Date: Sat, 23 May 1998 16:00:40 +0200
From: Damien Doligez <Damien.Doligez@inria.fr>
Message-Id: <199805231400.QAA24954@tobago.inria.fr>
To: caml-list@inria.fr
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



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:14 MET