essaye de voir en mettant des msgbox
tu verras le resultatCode:
1
2
3
4
5 Function Alea1(ByVal x As Variant) As Variant Dim n As Long, y As Double msgbox x msgbox y
Version imprimable
essaye de voir en mettant des msgbox
tu verras le resultatCode:
1
2
3
4
5 Function Alea1(ByVal x As Variant) As Variant Dim n As Long, y As Double msgbox x msgbox y
Bon, je viens de me plonger dans ton énocé pendant 5 mn, et je dois dire que je me plantais
tes 2 fonctions sont correcte pour ce qui est de leur fonctionnement
par contre tu les complique tellement avec tes variable que ça deviens extrement difficile a comprendre.
il faut que je te parle de cette ligne
Code:
1
2 If x >= 0 And x <= 1 And Rnd(x) < 0.9 Then
Citation:
Envoyé par F1
pour rnd, tu est donc sur et je ne vois pas l'interet de tester si X est entre 0 et 1 puisque ton énoncé dis
donc la seule condition a tester est rnd(X)Citation:
Envoyé par ton énoncé
et alors pourquoi tu fixe la barre a 0.9. si rnd est entre 0 et 1 et en supposant que rnd ne renvoie que des dixiemes (0.1, o.2 ect)). tu a dix possibilités et tu en veux 7
la ça me renvoit que des 1 et des salut pour alea1(20) , pourquoi?Code:
1
2
3
4
5
6
7
8
9
10 Function Alea1(ByVal x As Variant) As Variant Dim n As Long If Rnd(x) < 0.7 Then x = alea(n) Else x = "salut" End If Alea1 = x End Function
parceque n n'est pas défini. mais quel est l'interet de mettre un n puisque tu as un x:D
et n il vaut quoi :roll:
ben c'est curieux je pensais pas qu'on pouvais utiliser le paramètre de la fonction comme variable locale , c'est pas mieux de déclarer des autres variables ?
ma fonction marche , merci à vous 2 de votre PRECIEUSE aide .
bon, j'ai mis tes fonctions au clair, et si moi, je les trouve juste et logique, je pense qu'il faudrait l'avis d'un matheu là-dessus parce qu'en testant sur des grands nombre, je ne trouve pas un taux de 70/100 mais plutot de 82
Bonsoir Maxence.
Je crois que tu as un pb avec les variables et arguments.
Si j'ai bien compris, tu dois faire une fonction qui renvoie un nombre entre 0 et n, avec une probabilité de 0,9 et ("salut"?) avec une probabilité complémentaire de 0,1.
Tu as créé une première fonction Alea qui renvoie le nombre aléatoire entre 1 et n.
Maintenant tu es sur Alea1 qui appelle Alea avec une proba de 0,9.
Il faut pouvoir choisir la valeur de n. OK? Donc ta fonction doit avoir pour argument n.
Toutes les autres variables ne servent à rien.
Quand à ton if, il ne doit concerner que le tirage (rnd) qui n'a d'ailleurs pas besoin d'argument.
Donc dans le principe :
Tu vois?Code:
1
2
3
4
5 fonction alea1(arg : n) si rnd() <0,9 alors = alea(n) sinon = "salut"
PGZ