OVH Cloud OVH Cloud

Calcul de probabilté

7 réponses
Avatar
Himselff
Petite question de math ce matin ,

J'aimerais trouver le nombre de possibilité d'atteindre un total "T" avec
"X" item de valeur "V"

J'arrive pas a trouver la formule pour le calcul !

Merci beaucoup à l'Avance !

Fred

7 réponses

Avatar
jmn
Malheureusement, il semble que vous soyez obligé de dénombrer discrètement
(une à une) ces solutions !

Donc, votre nombre de possiblités sera inférieur ou égal au total des
combinaisons possibles avec X éléments, soit

somme, pour i variant de 1 à X, de combinaison(x,i)

ou en développant la fonction 'combinaison' :

somme, pour i variant de 1 à x, de
factorielle(x)/(factorielle(i)-factorielle(x-i))
Avatar
Pierre Alexis
Salut,

Tu as écrit :

Petite question de math ce matin ,

J'aimerais trouver le nombre de possibilité d'atteindre un total "T" avec
"X" item de valeur "V"

J'arrive pas a trouver la formule pour le calcul !



Cela dépend si V peut valoir 0 ou pas.

Dans le cas ou V ne peut pas valoir zéro, le nombre de possiblité sera égal à
:

(T-1)*(T-2)*...*(T-X+1)
--------------------------
fact(X-1)

Mais si V peut valoir zéro, alors le nombre de possiblité sera égal à :

(T+X-1)*(T+X-2)*... et ce X fois
--------------------------
fact(X-1)

Voilà :-)

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
jmn
"Pierre Alexis" a écrit dans le message news:

Salut,

Tu as écrit :

> Petite question de math ce matin ,
>
> J'aimerais trouver le nombre de possibilité d'atteindre un total "T"


avec
> "X" item de valeur "V"
>
> J'arrive pas a trouver la formule pour le calcul !

Cela dépend si V peut valoir 0 ou pas.

Dans le cas ou V ne peut pas valoir zéro, le nombre de possiblité sera


égal à
:

(T-1)*(T-2)*...*(T-X+1)
--------------------------
fact(X-1)

Mais si V peut valoir zéro, alors le nombre de possiblité sera égal à :

(T+X-1)*(T+X-2)*... et ce X fois
--------------------------
fact(X-1)

Voilà :-)




Si T00, et X=2

Alors, en appliquant votre formule :

nbr de possibilités = 999 (si il faut lire ((T-X)+1)

ou

nbr de possibilités = 999*998*997 (s'il faut lire (T-(X+1)))

Dans tous les cas, le nombre de possibilités est trivialement 3 (x(1),
x(2), x(1)+x(2))

Je ne comprends pas qu'est ce qui est dénombré par votre formule...
Avatar
Patrice Henrio
Il y a plus simple en programmation :
Le nombre de possibilité d'atteindre T avec X items de valeurs V est égal au
nombre de possibilités d'atteindre T-V(X), avec X-1 items de valeurs V plus
le nombre de possibilités d'atteindre T avec X-1 items de valeurs V sauf la
dernière.
En clair et sans formule
T est le total à obtenir, V() est le tableau des X items
Phi(T,X)=Phi(T-V(X),X)+Phi(T,X-1)
Donc codé dans un module dont l'objet de démarrage est la sub Main() cela
donne

Public V(1 To 5) As Integer
Public Sub Main()
Dim X As Integer, T As Integer
T = 70
X = 5
V(1) = 12
V(2) = 15
V(3) = 17
V(4) = 25
V(5) = 30
Debug.Print Phi(T, X)

End Sub

Private Function Phi(T As Integer, N As Integer)
If (T < 0) Or (N <= 0) Then
Phi = 0
Exit Function
End If
If T = 0 Then
Phi = 1
Exit Function
End If
Phi = Phi(T - V(N), N) + Phi(T, N - 1)
End Function




"Himselff" a écrit dans le message de
news:zN8jc.711$
Petite question de math ce matin ,

J'aimerais trouver le nombre de possibilité d'atteindre un total "T" avec
"X" item de valeur "V"

J'arrive pas a trouver la formule pour le calcul !

Merci beaucoup à l'Avance !

Fred




Avatar
Patrice Henrio
En complément de ce que je viens de dire, le problème est plus un problème
de dénombrement et non de probabilité.


"Patrice Henrio" a écrit dans le
message de news:
Il y a plus simple en programmation :
Le nombre de possibilité d'atteindre T avec X items de valeurs V est égal


au
nombre de possibilités d'atteindre T-V(X), avec X-1 items de valeurs V


plus
le nombre de possibilités d'atteindre T avec X-1 items de valeurs V sauf


la
dernière.
En clair et sans formule
T est le total à obtenir, V() est le tableau des X items
Phi(T,X)=Phi(T-V(X),X)+Phi(T,X-1)
Donc codé dans un module dont l'objet de démarrage est la sub Main() cela
donne

Public V(1 To 5) As Integer
Public Sub Main()
Dim X As Integer, T As Integer
T = 70
X = 5
V(1) = 12
V(2) = 15
V(3) = 17
V(4) = 25
V(5) = 30
Debug.Print Phi(T, X)

End Sub

Private Function Phi(T As Integer, N As Integer)
If (T < 0) Or (N <= 0) Then
Phi = 0
Exit Function
End If
If T = 0 Then
Phi = 1
Exit Function
End If
Phi = Phi(T - V(N), N) + Phi(T, N - 1)
End Function




"Himselff" a écrit dans le message de
news:zN8jc.711$
> Petite question de math ce matin ,
>
> J'aimerais trouver le nombre de possibilité d'atteindre un total "T"


avec
> "X" item de valeur "V"
>
> J'arrive pas a trouver la formule pour le calcul !
>
> Merci beaucoup à l'Avance !
>
> Fred
>
>




Avatar
Pierre Alexis
Salut,

Tu as écrit :

Je ne comprends pas qu'est ce qui est dénombré par votre formule...



Et moi je ne comprend pas ce que tu veux dénombrer :-p

Moi je dis j'avais compris : soit un certain nombre total T, et soit n valeur
(x1, x1, x3, ..., xn), quel est le nombre de solution de l'équation suivante :

x1 + x2 + x3 + ... + xn = T

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
jmn
Pour ma part, j'avais compris ceci :

Soit T un nombre quelconque et E un ensemble fini de N valeur x(1),
x(2),..., x(n), T et x(i) éléments de R, quel est le nombre de solutions de
l'équation

somme des x(i) = T avec nombre de x(a) variant de 1 à N, et i variant de
1 à N.

On voit immédiatement que le nombre total de combinaison des N éléments (n1
combinaison à 1 élément, n2 combinaisons à 2 élements, ..., nN combinaisons
à N élements) est :
somme, pour i variant de 1 à N, de Combinaison N,I (car l'ordre n'est pas
important)

Ce qui nous donne le nombre maximal de solutions ( cas où T=0 et où tous les
x(i) valent 0).

Pour toutes les autres solutions, le problème n'est pas dénombrable a
priori. Il faut rechercher réellement les solutions !
Ce qui se fait sans difficulté en programmant un parcours d'arbre binaire de
profondeur N (et en l'optimisant pour rejeter les
branches sans intérêts sous peine d'attendre longtemps dès que N devient
supérieur à une dizaine...)