caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: Nombre aléatoire.
@ 1998-05-23 14:00 Damien Doligez
  0 siblings, 0 replies; 3+ messages in thread
From: Damien Doligez @ 1998-05-23 14:00 UTC (permalink / raw)
  To: caml-list

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1298 bytes --]


[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





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Nombre aléatoire.
  1998-05-21 16:40 Patrice AUFFRET
@ 1998-05-22  7:26 ` Jean-Christophe Filliatre
  0 siblings, 0 replies; 3+ messages in thread
From: Jean-Christophe Filliatre @ 1998-05-22  7:26 UTC (permalink / raw)
  To: Patrice AUFFRET; +Cc: caml-list


> exécuté dans le toplevel ( sous Linux ). Mais lorsque je compile le
> programme, j'obtiens toujours le meme nombre. Le compilateur crée un
> nombre qu'il gardera de manière permanante lors de l'exécution
> ultérieure du programme. Comment faire pour qu'il change à chaque
> exécution du programme compilé ?

Une  façon simple  de faire consiste  à initialiser  le générateur  de
nombre aléatoires avec l'heure (donnée en nombre de secondes depuis le
1 janvier 1970, 00h00)

	Random.init (Unix.time())

-- 
Jean-Christophe FILLIATRE
  mailto:Jean-Christophe.Filliatre@lri.fr
  http://www.lri.fr/~filliatr





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Nombre aléatoire.
@ 1998-05-21 16:40 Patrice AUFFRET
  1998-05-22  7:26 ` Jean-Christophe Filliatre
  0 siblings, 1 reply; 3+ messages in thread
From: Patrice AUFFRET @ 1998-05-21 16:40 UTC (permalink / raw)
  To: caml-list

Bonjour,
je remercie les gens qui m'ont aidés pour la compilation de programme en
mode graphique. Maintenant je voudrais faire un programme utilisant des
nombres aléatoires. Cela marche très bien tant que le programme crée est
exécuté dans le toplevel ( sous Linux ). Mais lorsque je compile le
programme, j'obtiens toujours le meme nombre. Le compilateur crée un
nombre qu'il gardera de manière permanante lors de l'exécution
ultérieure du programme. Comment faire pour qu'il change à chaque
exécution du programme compilé ?






^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~1998-05-23 22:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-05-23 14:00 Nombre aléatoire Damien Doligez
  -- strict thread matches above, loose matches on Subject: below --
1998-05-21 16:40 Patrice AUFFRET
1998-05-22  7:26 ` Jean-Christophe Filliatre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).