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

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Quercia Michel <quercia@c...>
Subject: Re: Nombre aleatoire
Patrice AUFFRET <patrice.auffret@hol.fr> écrivait le 21/05 à 18h40 :

[français]
: 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.

Tu peux initialiser le générateur pseudo-aléatoire avec une valeur
passée sur la ligne de commande ou prendre l'heure qu'il est ou ...

Sous Linux, le "device" /dev/random fournit des octets aléatoires :

(* fichier alea.ml *)
let ch = open_in "/dev/random" in
let a = input_byte ch in
let b = input_byte ch in
let c = input_byte ch in
random__init ((a lsl 16) + (b lsl 8) + c); close_in ch;;
print_int (random__int 100);;
print_newline();;

(* compilation et exécution *)
bash$ camlc -custom -o alea alea.ml
bash$ for i in 1 2 3 4 5; do ./alea; done
81
72
64
2
41

[english]
See above how to initialize the pseudo-random numbers generator
with the /dev/random device on a Linux box.

----
Michel Quercia
Lycee Carnot  16 bd Thiers  21000 Dijon
http://pauillac.inria.fr/~quercia
mailto:quercia@cal.enst.fr,michel.quercia@ac-dijon.fr