OVH Cloud OVH Cloud

chiffre aleatoire

47 réponses
Avatar
pierre
y'a t il une maniere plus simple d'avoir un chiffre
compris entre 0 et 1 (et non egal a zero) autrement que
par la methode suivante ?

alea = Rnd()
While (alea = 0)
alea = Rnd()
Wend

par avance merci

10 réponses

1 2 3 4 5
Avatar
garnote
Pas sûr de comprendre !
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
les place dans des cellules, je peux augmenter
le nombre de décimales. Besoin qu'on jette la
lumière sur moi, foi de tigre !!!

Sub hasard()
For i = 1 To 1000
Cells(i, 1) = Rnd
Next i
End Sub

Serge
Avatar
Papyty
Bonjour @ tous et à garnote :
Et grâce aux probas, j'ai encore gagné 20 $ hier
en gageant qu'au moins deux personnes dans la salle
avait la même date d'anniversaire.



=1-(PERMUTATION(365;LIGNE())/(365^LIGNE()))


Y'avait du monde dans cette salle pour que tu ne prennes pas trop de risque
;-)))
Ton anniversaire???
--
@+
Thierry
06/01/2004 20:37:24

Avatar
garnote
Je suis prudent. J'attends toujours qu'il y ait
au moins quarante personnes et je mime
l'ivresse totale pour les inciter à gager.

;-)))

Serge

"Papyty" a écrit dans le message de news:
j5susdccausc.aft7lnb4op3o$
Bonjour @ tous et à garnote :
Et grâce aux probas, j'ai encore gagné 20 $ hier
en gageant qu'au moins deux personnes dans la salle
avait la même date d'anniversaire.



=1-(PERMUTATION(365;LIGNE())/(365^LIGNE()))


Y'avait du monde dans cette salle pour que tu ne prennes pas trop de
risque

;-)))
Ton anniversaire???
--
@+
Thierry
06/01/2004 20:37:24



Avatar
Papyty
Bonjour @ tous et à garnote :
au moins quarante personnes et je mime
l'ivresse totale pour les inciter à gager.


Jaurais pris la quarantaine aussi, c'est raisonnable (J'aime bien la
quarantaine ;-)))
--
@+
Thierry
06/01/2004 20:55:12

Avatar
Balain
Bonsoir,

Je ne m'y connais pas particulièrement mais, si je cherchais un chiffre
entre 0,0000001 et 0,9999999, je ferais quelque chose du genre :
x = rand()
résultat = (x + 0,0000001 ) * 0,9999999

Balain

"garnote" a écrit dans le message de
news:9sDKb.27857$
| Est-ce à dire que Rnd choisit un nombre parmi les suivants :
| 0,0000000
| 0,0000001
| 0,0000002
| .
| .
| 0,9999998
| 0,9999999
|
| Ce qui ferait 10 000 000 de possibilités. On est vraiment
| très très loin de l'infini, comme toujours d'ailleurs ;-)
| Donc il y aurait une chance sur 10 000 000 que le
| 0 «sorte» ? Erre-je ?
|
| Serge
|
|
| "garnote" a écrit dans le message de news:
| Y9DKb.27854$
| > C'est pour ça que je disais en théorie.
| > Il arrive qu'une variable aléatoire puisse, du moins en théorie,
| > prendre des valeurs liées les unes aux autres de façon continue.
| > Par exemple, le poids d'un oeuf peut être 56 grammes, ou 56,01
grammes,
| > ou 55,999 99 grammes. Mais la probabilité qu'un oeuf pèse exactement
| > 56 grammes (ou tout autre poids précis donné à l'avance) est zéro.
| > Chaque valeur particulière est «impossible».
| > Rnd ne doit pas fouiller sur tout l'intervalle !
| > M'étonnerait qu'il sorte :
| > 0,827365423948276532834746252739846243749563954
| >
| > ;-)
| > Serge
| >
| > "Nicolas B." a écrit dans le
message de
| > news: #uBF8$
| > > > Avec 15 chiffres significatifs, ça donne une probabilité de
10^-15,
| > > > soit une chance sur un million de milliards.
| > > >
| > > Oupsss,
| > >
| > > Rnd ne donne un nombre qu'avec 7 décimales, donc 10^-7.
| > > En faisant un test sur plus de 300 milliards d'essais, je trouve
| 6.10^-8,
| > > donc ça colle.
| > >
| > >
| > > --
| > > Nicolas B.
| > >
| > > Adresse @adresse.bidon.com invalide,
| > > E-mail : www.cerbermail.com/?gAAILfkPsC
| > >
| > >
| > > > Salut Serge,
| > > >
| > > > Extrait de l'aide :
| > > > "La fonction Rnd renvoie une valeur inférieure à 1 mais
supérieure ou
| > > > égale à zéro."
| > > >
| > > > La probabilité tend vers 0 et n'est pas nulle, non ?
| > > >
| > > > Avec 15 chiffres significatifs, ça donne une probabilité de
10^-15,
| > > > soit une chance sur un million de milliards.
| > > >
| > > >
| > > > A+
| > > >
| > > >> Théoriquement c'est vrai mais en pratique ?
| > > >> Je me suis amusé à demander 10 000 000
| > > >> de Rnd et j'ai reçu un 0. (précision des calculs !)
| > > >>
| > > >> À suire !
| > > >>
| > > >> Serge
| > > >>
| > > >> "pierre" a écrit dans le
| > > >> message de news: 019401c3d478$49f54280$
| > > >> ok c bon a savoir
| > > >>
| > > >> merci
| > > >>
| > > >>> -----Message d'origine-----
| > > >>> Salut Pierre,
| > > >>>
| > > >>> Tu ne devrais pas t'en faire. La probabilité que
| > > >>> le nombre choisi soit égal à 0 est nulle ;-)))
| > > >>>
| > > >>> Serge
| > > >>>
| > > >>> "pierre" a écrit
| > > >> dans le message de
| > > >>> news: 061401c3d474$e2b34480$
| > > >>>> y'a t il une maniere plus simple d'avoir un chiffre
| > > >>>> compris entre 0 et 1 (et non egal a zero) autrement que
| > > >>>> par la methode suivante ?
| > > >>>>
| > > >>>> alea = Rnd()
| > > >>>> While (alea = 0)
| > > >>>> alea = Rnd()
| > > >>>> Wend
| > > >>>>
| > > >>>> par avance merci
| > > >>>
| > > >>>
| > > >>> .
| > >
| > >
| >
| >
|
|
Avatar
Nicolas B.
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
En effet, c'est bien 15 chiffres.


Comme ça, ça marche :

Sub Bizarre()
Dim var As Double
var = Rnd
MsgBox var
End Sub

Explication :
Si je fais msgbox = rnd, rnd est affiché sous la forme d'une variable
Single, c'est à dire avec 7 chiffres à droite de la virgule. De plus, Rnd
est arrondi à 7 chiffres lorsqu'on fait un test dessus (par exemple savoir
s'il vaut 0).

Pour afficher plus de décimales, il faut passer par une variable définie en
Double (à virgule flottante, et donc dans ce cas 15 décimales). Là, la
probabilité d'avoir 0 est beaucoup plus faible :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Pas sûr de comprendre !
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
les place dans des cellules, je peux augmenter
le nombre de décimales. Besoin qu'on jette la
lumière sur moi, foi de tigre !!!

Sub hasard()
For i = 1 To 1000
Cells(i, 1) = Rnd
Next i
End Sub

Serge


Avatar
garnote
C'est-à-dire une chance sur 1 000 000 000 000 000
Si c'est le cas, on se rapproche
dangereusement de 0.

Serge

"Nicolas B." a écrit dans le message de
news:
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
En effet, c'est bien 15 chiffres.


Comme ça, ça marche :

Sub Bizarre()
Dim var As Double
var = Rnd
MsgBox var
End Sub

Explication :
Si je fais msgbox = rnd, rnd est affiché sous la forme d'une variable
Single, c'est à dire avec 7 chiffres à droite de la virgule. De plus, Rnd
est arrondi à 7 chiffres lorsqu'on fait un test dessus (par exemple savoir
s'il vaut 0).

Pour afficher plus de décimales, il faut passer par une variable définie
en

Double (à virgule flottante, et donc dans ce cas 15 décimales). Là, la
probabilité d'avoir 0 est beaucoup plus faible :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Pas sûr de comprendre !
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
les place dans des cellules, je peux augmenter
le nombre de décimales. Besoin qu'on jette la
lumière sur moi, foi de tigre !!!

Sub hasard()
For i = 1 To 1000
Cells(i, 1) = Rnd
Next i
End Sub

Serge






Avatar
Nicolas B.
Je n'ose pas me lancer dans la vérification de cette valeur.
Exécuter une boucle 1 000 000 000 000 000 de fois...
Mon ordi risquerait de ne pas tenir le coup ;-)

Pour rependre le fil de la question initiale de pierre :
Si j'étais lui, je ne ferais pas le test du 0, la probabilité qu'il tombe
étant largement plus faible que la probabilité que ma macro plante (les
macros de mon invention plantent, disons... 1 fois sur 5 ;-))


--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


C'est-à-dire une chance sur 1 000 000 000 000 000
Si c'est le cas, on se rapproche
dangereusement de 0.

Serge

"Nicolas B." a écrit dans le
message de news:
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
En effet, c'est bien 15 chiffres.


Comme ça, ça marche :

Sub Bizarre()
Dim var As Double
var = Rnd
MsgBox var
End Sub

Explication :
Si je fais msgbox = rnd, rnd est affiché sous la forme d'une variable
Single, c'est à dire avec 7 chiffres à droite de la virgule. De
plus, Rnd est arrondi à 7 chiffres lorsqu'on fait un test dessus
(par exemple savoir s'il vaut 0).

Pour afficher plus de décimales, il faut passer par une variable
définie en Double (à virgule flottante, et donc dans ce cas 15
décimales). Là, la probabilité d'avoir 0 est beaucoup plus faible :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Pas sûr de comprendre !
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
les place dans des cellules, je peux augmenter
le nombre de décimales. Besoin qu'on jette la
lumière sur moi, foi de tigre !!!

Sub hasard()
For i = 1 To 1000
Cells(i, 1) = Rnd
Next i
End Sub

Serge






Avatar
garnote
Je ne crois pas qu'il faille simuler cette affaire-là.
Il suffirait que quelqu'un me convainque que mon
explication tient la route :
Si Rnd choisissait des nombres entre 0 et 1 avec
une précision de une décimale, il ne pourrait obtenir
que l'un des dix nombres suivants :
0,0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
et la probabilité de tomber sur 0 serait égale à 1/10.
De même si la précision est de deux décimales,
la probabilité de tomber sur 0 serait égale à 1/100,
et ainsi de suite jusqu'à une précision de 15 décimales.

Que pensez-vous de ce raisonnement (résonnement !)?

Serge






"Nicolas B." a écrit dans le message de
news: urQ$
Je n'ose pas me lancer dans la vérification de cette valeur.
Exécuter une boucle 1 000 000 000 000 000 de fois...
Mon ordi risquerait de ne pas tenir le coup ;-)

Pour rependre le fil de la question initiale de pierre :
Si j'étais lui, je ne ferais pas le test du 0, la probabilité qu'il tombe
étant largement plus faible que la probabilité que ma macro plante (les
macros de mon invention plantent, disons... 1 fois sur 5 ;-))


--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


C'est-à-dire une chance sur 1 000 000 000 000 000
Si c'est le cas, on se rapproche
dangereusement de 0.

Serge

"Nicolas B." a écrit dans le
message de news:
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
En effet, c'est bien 15 chiffres.


Comme ça, ça marche :

Sub Bizarre()
Dim var As Double
var = Rnd
MsgBox var
End Sub

Explication :
Si je fais msgbox = rnd, rnd est affiché sous la forme d'une variable
Single, c'est à dire avec 7 chiffres à droite de la virgule. De
plus, Rnd est arrondi à 7 chiffres lorsqu'on fait un test dessus
(par exemple savoir s'il vaut 0).

Pour afficher plus de décimales, il faut passer par une variable
définie en Double (à virgule flottante, et donc dans ce cas 15
décimales). Là, la probabilité d'avoir 0 est beaucoup plus faible :-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Pas sûr de comprendre !
Tu me dis que Rnd sort des nombres avec
une précision de 7 décimales mais quand je
les place dans des cellules, je peux augmenter
le nombre de décimales. Besoin qu'on jette la
lumière sur moi, foi de tigre !!!

Sub hasard()
For i = 1 To 1000
Cells(i, 1) = Rnd
Next i
End Sub

Serge










Avatar
Daniel.M
Sergio,

Précision ici: par même date de naissance, on fait fi de l'année.

T'as lu "Innumeracy: mathematical illeteracy and its consequences", John A
Paulos ?

Salutations,

Daniel M.


"garnote" wrote in message
news:qQDKb.27859$
;-)))))))))))

Et grâce aux probas, j'ai encore gagné 20 $ hier
en gageant qu'au moins deux personnes dans la salle
avait la même date d'anniversaire.
Les probabilités en question sont obtenues en entrant
cette formule en A1 et en la recopiant vers le bas :
=1-(PERMUTATION(365;LIGNE())/(365^LIGNE()))

Serge


1 2 3 4 5