Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2365 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  fonction random

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction random

n°261296
boom
Posté le 05-12-2002 à 02:11:21  profilanswer
 

Dites, j'ai un petit problème, je dois écrire un prog qui doit déterminer la valeur de pi en utilisant l'algorithme de Monte-Carlo.
 
Le but de cet algo de monte-carlo, c'est de projeter aléatoirement des points dans un carré de côté 1, et ensuite de compter combien de ces points font partie d'un quart de cercle inscrit dans ce carré (donc le rayon est de 1).
 
Ensuite on fait : le nb de points contenus dans ce quart de cercle x 4 et on divise le tout par le nb de points total.
 
Le problème, c'est que ma focntion random a tendance à projeter 99% des points dans la zone du carré qui n'appartient pas au quart de cercle.
 
le principe de ma fonction random est de faire (en utilisant la fonction random de mon langage, scheme, qui accepte un entier comme valeur max et renvoie un entier) :
 
random nb_quelconque = numerateur
random nb_quelconque = denominateur
 
tester si la fraction est inférieur à 1, et si oui stocker le resultat dans une liste (tableau) puis de refaire l'opération jusqu'à ce que j'ai un nb assez important de ce genre de valeurs pour utiliser l'algo de monte-carlo.
 
j'espère que tout ça n'est pas trop embrouillé.
 
Merci pour vos conseils et remarques
 

mood
Publicité
Posté le 05-12-2002 à 02:11:21  profilanswer
 

n°261382
mareek
Et de 3 \o/
Posté le 05-12-2002 à 04:29:57  profilanswer
 

je connais pas le scheme, mais d'après ce que j'ai compris, la fonction random renvoit un entier entre 0 et un paramètre que tu lui donnes.
 
ça serait pas plus simple (et plus aléatoire) de remplir ton tableau comme ça ? (c'est pas du scheme mais tu comprendras l'algo je pense):
 

Code :
  1. i=0;
  2. while(i<NbDeValeursSouhaité){
  3.   MonTableau[i]=(random(UnNombreAssezGrand)/UnNombreAssezGrand);
  4.   i++;
  5. }


Message édité par mareek le 05-12-2002 à 04:30:09

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°261402
kadreg
profil: Utilisateur
Posté le 05-12-2002 à 09:08:39  profilanswer
 

boom a écrit a écrit :

 




 
Ne confondons pas aléatoire et n'importe quoi. Aléatoire suppose une distribution uniforme des tirages parmi les possibilité, alors que n'importe quoi ne présupose pas de cette distribution.
 
Par exemple, je lit un octet n'importe où en mémoire. J'aurais n'importe quoi, mlais j'ai tout de même plus de chances d'avoir 0 qu'autre chose.
 
Et l'algo fr Monte-carlo ne marche qu'avec un tirage aléatoire.


Message édité par kadreg le 05-12-2002 à 09:08:59

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°261406
benou
Posté le 05-12-2002 à 09:17:19  profilanswer
 

boom a écrit a écrit :

 
random nb_quelconque = numerateur
random nb_quelconque = denominateur




attend, si ton carré est de côté un, tous tes points doivent avoir leur abscices et ordonnés < à 1.
donc, si toi tu leur donnes un numérateur et un dénominateur ce sera quasiment toujours supérieur à 1 !
 
il faut juste que tu trouve des nombres aléatoire entre 0 et 1 =>utilise la méthode de marek.
 
allez, avec mes vieux souvenirs de scheme, ca doit donner un truc dans le genre :
 
(define random2 (n)
   (/ (random (n)) n)
)
 

n°261408
mareek
Et de 3 \o/
Posté le 05-12-2002 à 09:19:21  profilanswer
 

benou a écrit a écrit :

 
attend, si ton carré est de côté un, tous tes points doivent avoir leur abscices et ordonnés < à 1.
donc, si toi tu leur donnes un numérateur et un dénominateur ce sera quasiment toujours supérieur à 1 !
 
il faut juste que tu trouve des nombres aléatoire entre 0 et 1 =>utilise la méthode de marek.
 
allez, avec mes vieux souvenirs de scheme, ca doit donner un truc dans le genre :
 
(define random2 (n)
   (/ (random (n)) n)
)


2 'e' à mareek  [:mareek]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°261411
benou
Posté le 05-12-2002 à 09:21:25  profilanswer
 

mareek a écrit a écrit :

2 'e' à mareek  [:mareek]  




je suis désolé  :(

n°261412
mareek
Et de 3 \o/
Posté le 05-12-2002 à 09:22:01  profilanswer
 

benou a écrit a écrit :

 
je suis désolé  :(  



spagrave :hello:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°262397
boom
Posté le 05-12-2002 à 20:42:45  profilanswer
 

Merci bien à tout le monde pour vos réponse
 

kadreg a écrit a écrit :

 
 
Ne confondons pas aléatoire et n'importe quoi. Aléatoire suppose une distribution uniforme des tirages parmi les possibilité, alors que n'importe quoi ne présupose pas de cette distribution.
 
Par exemple, je lit un octet n'importe où en mémoire. J'aurais n'importe quoi, mlais j'ai tout de même plus de chances d'avoir 0 qu'autre chose.
 
Et l'algo fr Monte-carlo ne marche qu'avec un tirage aléatoire.  




 
Et merci pour cette précision, je ne connaissais pas la différence.

n°262554
Je@nb
Kindly give dime
Posté le 05-12-2002 à 23:09:31  profilanswer
 

J'ai fait un prog en delphi ki simulait, si tu veux je te le passe avec les sources.
 
Déjà le programme http://www.jeanb-net.com/pi.exe pour les sources mail jeanb@jeanb-net.com ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  fonction random

 

Sujets relatifs
[c] Mesurer les temps d'exécution d'une fonctionRetourner plusieurs résultats d'une fonction
Fonction select ...[PHP] appel d'une fonction dans un autre fichier
faire appel a une fonction qui se trouve dans un autre fichier !Difference entre une procedure et une fonction ??
[ C++ ] - j'arrive pas a utiliser la fonction random[c++ sous dos] comment faire une fonction random de 01 à 100 ?
Fonction "random" ou "shuffle" en C++ : ça existe ?[ALGO] Comment marche une fonction random() ?
Plus de sujets relatifs à : fonction random


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR