OVH Cloud OVH Cloud

algo

8 réponses
Avatar
Titeuf
-j'ai un résultat : Result
Result à une valeur que je connais
-j'ai un tableau de 10 case : tab(10)
dans chaque case du tableau se trouve une valeur

je voudrais trouver quelles sont les cases du tableau qui sont à utiliser
pour obtenir la valeur que contient Result


si quelqu'un avait pouvait m'aider à faire cet algo
merci

8 réponses

Avatar
le_troll
Bonjour,
Par clair, vu veux trouver dans ton tableau la valeur de "Result" en une
seul fois, par exp Result fait 9, tu recherches 9 dans ton tableau ???
OU
Plus compliqué, Résult fait 18, et dans ton tableau tu vas additionner les
valeurs jusqu'à trouver 18, exp, le tableau a comme valeurs
1,2,3,4,5,6,7,8,9,10, donc le résultat sera ici 8+10, est-ce ça ???
ET
Si ça n'existe pas, tu fais quoi ???
Dans l'attente de précisions ???
--
Merci, @+, bye, Joe
montmartre75 AROBASE iFrance POINT com
------------------------------------------
Ce message est certifié "plein de virus"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Titeuf" a écrit dans le message de news:
c98dm3$f6g$
-j'ai un résultat : Result
Result à une valeur que je connais
-j'ai un tableau de 10 case : tab(10)
dans chaque case du tableau se trouve une valeur

je voudrais trouver quelles sont les cases du tableau qui sont à utiliser
pour obtenir la valeur que contient Result


si quelqu'un avait pouvait m'aider à faire cet algo
merci





Avatar
ng
Salut,

-j'ai un tableau de 10 case : tab(10)


Déclaré ainsi, tab à 11 cases et non 10.
Il faudrait tab(9) ou tab(1 To 10)

je voudrais trouver quelles sont les cases du tableau qui sont à
utiliser pour obtenir la valeur que contient Result


Quelles opérations est-on autorisé à utiliser ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Titeuf a écrit :

-j'ai un résultat : Result
Result à une valeur que je connais
-j'ai un tableau de 10 case : tab(10)
dans chaque case du tableau se trouve une valeur

je voudrais trouver quelles sont les cases du tableau qui sont à
utiliser pour obtenir la valeur que contient Result


si quelqu'un avait pouvait m'aider à faire cet algo
merci


Avatar
Titeuf
en fait par exemple résultat fait 1563245

mes cases du tableau contiennent par exemple des valeurs
tab(0)563
tab(1)2147
tab(2)147
tab(3)%
tab(4)!035
tab(5)…631
....tab(9)

je sais que je peux trouver le résultat à partir de ces valeurs
je n'ai à utiliser juste l'ADDITION
donc je voudrais savoir quelle(s) case(s) sont utilisées pour obtenir
Résultat

merci
Avatar
ng
Ok, j'ai essayé d'ébaucher qqch chose tt à l'heure mais c'est un peu plus
compliqué que ce que je pensais, il y a bcp de possibilité
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Titeuf a écrit :

en fait par exemple résultat fait 1563245

mes cases du tableau contiennent par exemple des valeurs
tab(0)563
tab(1)2147
tab(2)147
tab(3)%
tab(4)!035
tab(5)…631
....tab(9)

je sais que je peux trouver le résultat à partir de ces valeurs
je n'ai à utiliser juste l'ADDITION
donc je voudrais savoir quelle(s) case(s) sont utilisées pour obtenir
Résultat

merci


Avatar
Rémy Coquard
"Titeuf" a écrit dans le message de
news:c99k7q$r0b$
| en fait par exemple résultat fait 1563245
|
| mes cases du tableau contiennent par exemple des valeurs
| tab(0)563
| tab(1)2147
| tab(2)147
| tab(3)%
| tab(4)!035
| tab(5)…631
| ....tab(9)
|
| je sais que je peux trouver le résultat à partir de ces valeurs
| je n'ai à utiliser juste l'ADDITION
| donc je voudrais savoir quelle(s) case(s) sont utilisées pour obtenir
| Résultat

Expliqué comme cela, c'est beaucoup mieux. Il eut fallu commencer tout
de suite par être très précis (y compris dans le titre). :-)

Sinon, cela ressemble au problème du sac à dos : remplir un sac à dos
portant 50 kg avec des objets de poids divers (5 kg, 10 kg, etc.) à ceci
près que le sac à dos n'est pas obligatoirement rempli à ras bord tandis
que là, la somme des éléments du tableau donne le total exact. C'est un
algorithme assez classique. Je conseille une recherche Google portant
sur : +algorithme +"sac à dos".

RC
Avatar
Patrice Henrio
Le problème a été abordé de nombreuses fois sur ce forum. Pour ma part
j'utilise la récursivité : très simple à implanter, compliqué à suivre.
Function Somme(X as long, N as integer) as boolean

If (X<=0) or (N>10) then
Somme=(X=0) and (N<)
Exit Function
End If
Somme=Somme(X-T(N),N+1) or Somme(X,N+1)
End

Je n'ai pas testé mais je pense que ça marche.

"Rémy Coquard" a écrit dans le message de
news:

"Titeuf" a écrit dans le message de
news:c99k7q$r0b$
| en fait par exemple résultat fait 1563245
|
| mes cases du tableau contiennent par exemple des valeurs
| tab(0)563
| tab(1)2147
| tab(2)147
| tab(3)%
| tab(4)!035
| tab(5)…631
| ....tab(9)
|
| je sais que je peux trouver le résultat à partir de ces valeurs
| je n'ai à utiliser juste l'ADDITION
| donc je voudrais savoir quelle(s) case(s) sont utilisées pour obtenir
| Résultat

Expliqué comme cela, c'est beaucoup mieux. Il eut fallu commencer tout
de suite par être très précis (y compris dans le titre). :-)

Sinon, cela ressemble au problème du sac à dos : remplir un sac à dos
portant 50 kg avec des objets de poids divers (5 kg, 10 kg, etc.) à ceci
près que le sac à dos n'est pas obligatoirement rempli à ras bord tandis
que là, la somme des éléments du tableau donne le total exact. C'est un
algorithme assez classique. Je conseille une recherche Google portant
sur : +algorithme +"sac à dos".

RC




Avatar
Patrice Henrio
Petite modif

Function Somme(X as long, N as integer) as boolean
If (X<=0) or (N>10) then
Somme=(X=0) and (N<)
Exit Function
End If
Somme=Somme(X-T(N),N+1) or Somme(X,N+1)
End

L'appel se fait de la façon suivante

Somme(Valeur à Obtenir,1)
Si la valeur est atteinte somme renvoie True sinon il renvoie False.
On peut bien sûr améliorer en donnant la décomposition.




"Patrice Henrio" a écrit dans le
message de news:
Le problème a été abordé de nombreuses fois sur ce forum. Pour ma part
j'utilise la récursivité : très simple à implanter, compliqué à suivre.
Function Somme(X as long, N as integer) as boolean

If (X<=0) or (N>10) then
Somme=(X=0) and (N<)
Exit Function
End If
Somme=Somme(X-T(N),N+1) or Somme(X,N+1)
End

Je n'ai pas testé mais je pense que ça marche.

"Rémy Coquard" a écrit dans le message de
news:
>
> "Titeuf" a écrit dans le message de
> news:c99k7q$r0b$
> | en fait par exemple résultat fait 1563245
> |
> | mes cases du tableau contiennent par exemple des valeurs
> | tab(0)563
> | tab(1)2147
> | tab(2)147
> | tab(3)%
> | tab(4)!035
> | tab(5)…631
> | ....tab(9)
> |
> | je sais que je peux trouver le résultat à partir de ces valeurs
> | je n'ai à utiliser juste l'ADDITION
> | donc je voudrais savoir quelle(s) case(s) sont utilisées pour obtenir
> | Résultat
>
> Expliqué comme cela, c'est beaucoup mieux. Il eut fallu commencer tout
> de suite par être très précis (y compris dans le titre). :-)
>
> Sinon, cela ressemble au problème du sac à dos : remplir un sac à dos
> portant 50 kg avec des objets de poids divers (5 kg, 10 kg, etc.) à ceci
> près que le sac à dos n'est pas obligatoirement rempli à ras bord tandis
> que là, la somme des éléments du tableau donne le total exact. C'est un
> algorithme assez classique. Je conseille une recherche Google portant
> sur : +algorithme +"sac à dos".
>
> RC
>
>




Avatar
Titeuf
merci beaucoup !