fonction random - Algo - Programmation
Marsh Posté le 05-12-2002 à 04:29:57
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 :
|
Marsh Posté le 05-12-2002 à 09:08:39
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.
Marsh Posté le 05-12-2002 à 09:17:19
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)
)
Marsh Posté le 05-12-2002 à 09:19:21
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
Marsh Posté le 05-12-2002 à 09:22:01
benou a écrit a écrit : je suis désolé |
spagrave
Marsh Posté le 05-12-2002 à 20:42:45
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.
Marsh Posté le 05-12-2002 à 23:09:31
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
Marsh Posté le 05-12-2002 à 02:11:21
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