From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: weis Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id AAA09192 for caml-redistribution; Sun, 24 May 1998 00:18:06 +0200 (MET DST) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA09403 for ; Sat, 23 May 1998 16:00:42 +0200 (MET DST) Received: from tobago.inria.fr (tobago.inria.fr [128.93.8.21]) by concorde.inria.fr (8.8.7/8.8.7) with ESMTP id QAA15875 for ; Sat, 23 May 1998 16:00:41 +0200 (MET DST) Received: (from doligez@localhost) by tobago.inria.fr (8.6.10/8.6.6) id QAA24954 for caml-list@inria.fr; Sat, 23 May 1998 16:00:40 +0200 Date: Sat, 23 May 1998 16:00:40 +0200 From: Damien Doligez Message-Id: <199805231400.QAA24954@tobago.inria.fr> To: caml-list@inria.fr Subject: Re: Nombre aléatoire. Sender: weis [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 > 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