Bonsoir à tous,
je voudrais faire un tirage d'un nombre aléatoire "p" dans la loi uniforme, mais je
ne sais pas si elle existe une fonction bien définit ou un programme qui fait ça!!,
Merci à votre réponse.
Bonsoir à tous,
je voudrais faire un tirage d'un nombre aléatoire "p" dans la loi uniforme, mais je
ne sais pas si elle existe une fonction bien définit ou un programme qui fait ça!!,
Merci à votre réponse.
Bonjour,
Les deux indications suivantes pourront vous être utile :
1 - Fortran 9x dispose d'un générateur de nombres pseudo-aléatoires que l'on appelle via la subroutine random_number. Lorsque on lui passe en argument un flottant x, elle retourne un flottant tiré aléatoirement selon une loi uniforme sur l'intervalle [0, 1[ :
Vous trouverez plus d'informations sur cette subroutine intrinsèque ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ... real :: x call random_number(x) ! x flottant aléatoire avec : 0 <= x < 1 ...
2. Si l'on souhaite tiré un nombre aléatoire p selon une loi uniforme sur un intervalle de type a <= p <b, il suffit de mettre à l'échelle de la façon suivante :
Finalement, si vous connaissez a-priori un intervalle dans lequel doit se trouver le nombre que vous voulez générer votre problème est résolu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ... real, parameter :: a = -10., b = 10. real :: x, p call random_number(x) p = x*a + (1. - x)*b ...
Tu peux aussi aller voir du côté de http://jblevins.org/mirror/amiller/#random
salut,
merci à tous, j'ai réfléchit de faire ça mais je n'ai savait pas que la fonction random utilise la loi uniforme,
cordialement
Bonjour,
j'ai exécuté la fonction random 5 fois dans un algorithme et à chaque fois elle me donne les meme résultats dans cet ordre :
0.98 - 0.69 - 0.27 - 0.66 - 0.80
normalement qu'elle va pas me donne ces résultats à chaque fois !!
cordialement
Ce n'est pas forcément étonnant; le générateur aléatoire fournit une série de valeurs qui dépendent d'une valeur initiale.
Cette valeur initiale, ou "graine", va donc conditionner l'ensemble de la série. A partir d'une même valeur initiale, on obtient toujours la même série.
Il faut donc, avant la première utilisation, utiliser la routine d'initialisation (qui s'appelle RANDOM_SEED ), en lui fournissant une valeur initiale différente à chaque fois (si on souhaite des tirages différents).
J'aime bien utiliser la date & l'heure pour générer la graine. Un exemple peut être trouvé là:
http://gcc.gnu.org/onlinedocs/gfortr..._005fSEED.html
Pas testé personnellement, d'ailleurs, mais c'est l'idée
Bon courage.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager