Re: on non unix platform

From: Martin Quinson (
Date: Tue Jun 29 1999 - 00:35:31 MET DST

To: Damien Doligez <>
Subject: Re: on non unix platform
Date: Tue, 29 Jun 1999 01:35:31 +0300
From: Martin Quinson <>
Message-Id: <E10ykw0-0001U5-00@nestor>

> >From: Martin Quinson <>
> =

> >How can I write this without the unix library ?
> >
> >Random.init (int_of_float (Unix.time ()));;
> =

> You can do:
> =

> Random.init (int_of_float (Sys.time ()));;
> =

> or you can input a random seed from the user and give it as argument
> to Random.init.

                        (francais en bas)

hmmm. from htmlman/module sys :

> val time: unit -> float
> Return the processor time, in seconds, used by the program sin=
ce the
> beginning of execution.

So, if this call is at the begining of the programm, it will allways gene=
rate =

the same number (or almost). from the source code :
(* Simple initialisation. The seed is an integer.
   Two seeds that are close enough will not produce uncorrelated
   pseudo-random sequences.

And I really dislike the second solution...

Maybe would it be possible to make the module Random initialize itself al=
one =

before the first call, in the next release...

                             [en francais]

J'aimerais initialiser le generateur aléatoire de nombre sans utiliser =
la =

librairie Unix. Dans d'autres langage, j'ai l'habitude d'utiliser l'heure=
 pour =

ca, mais, apparament, c'est impossible sans la librairie Unix (ce qui n'e=
st =

pas portable, oblige a recompiler le top-level et complique la ligne de =

compilation des compilateurs)

Quant à l'idée de demander une graine à l'utilisateur, je trouve ca=
 un peu =

préhistorique, comme approche. ;)

A mon avis, le plus simple serait encore que le module Random se charge t=
out =

seul comme un grand de s'initialiser sans demander a l'utilisateur de le =
(dans une prochaine version ?)

Merci & thanks,

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