VBSkinou
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention 9 novembre 2006
-
14 oct. 2006 à 15:46
VBSkinou
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention 9 novembre 2006
-
15 oct. 2006 à 12:29
Bonjour tous le monde voila c ma première participation au
forum :
Dans le Cadre de ma PFE (VoIP) d’ingéniorat en réseaux
informatique et télécommunication je vais proposer une petite application en VB
sur le dimensionnement des réseaux Voix sur IP et j’ai besoin d’insérer une
formule mathématique appelée formule d’Erlang qui est la suivante :
Q (N) = [ xN/(
m
<sup>
N
</sup>
N!)
] /
[1+x/
m
+…..+xN/(
m
<sup>
N
</sup>
N!) ]
Normalement elle doit être une fonction pour pouvoirs lui
faire appel en insérant les variable et elle donnera le résultat.
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 14 oct. 2006 à 18:37
Salut, a priori c'est simple, on passe les valeurs N, x et m à une function.
Le problème est quel est le type de ces données ? (integer, long, double, ...)
D'autre part, je ne suis pas fortiche en math et je ne comprend pas la notation.
Peux-tu expliquer les crochets, le N!, le ?.., l'espace entre m^N et N! est considéré comme une multiplication ?
VBSkinou
Messages postés4Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention 9 novembre 2006 14 oct. 2006 à 22:47
Salut Dolphin Boy les crochets ne veule rien dire c'est comme des parenthese, le N! est (N factoriel) , le ,?... (j'ai fait une faute de frappe) est en fet .... ce qui veut dire le reste des termes de la suite, et l'espace entre m^N et N! est considéré comme tu l'a dis une multiplication.
Je crois qu'il faut faire un algo pour cette formule si tu peut m'aider je suis dans une impasse...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 15 oct. 2006 à 10:27
Voila un petit code simplissime.
A toi de l'adapter à tes besoins, rajouter si necessaire des controles d'erreur, de limites, .....
Je ne l'ai pas tester car je n'ai pas de valeurs témoins avec lesquelles comparer les résultats.
'--- Calcul de la formule d'Erlang --------------------------------------------
Public Function erlang(x As Double, m As Double, n As Integer) As Double
Dim num As Double
Dim den As Double
Dim i As Integer
'Controle de la validité de N pour la factorielle
'Habituellement, il est admis que les factorielles suppérieures à 69 n'existe pas
'Le format double permet d'aller jusqu'à 170
If n > 69 Then
MsgBox "Erreur dans le paramètre N"
Exit Function
End If
'Calcul du numérateur
num = x ^ n / (m ^ n) * fact(n))
'Calcul du dénominateur
den = 0
For i = 0 To n
den = den + (x ^ i / (m ^ i) * fact(i)))
Next
'Calcul de la formule
erlang = num / den
End Function
'--- Calcul d'une factorielle -------------------------------------------------
Public Function fact(z As Double) As Double
If z = 0 Then
fact = 1
Else
fact = z * fact(z - 1)
End If