[Déplacé .Net --> VBA] retrouver un resulat a l'aide de certaines valeurs
gfaizou
Messages postés2Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention26 novembre 2009
-
26 nov. 2009 à 04:09
gfaizou
Messages postés2Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention26 novembre 2009
-
26 nov. 2009 à 18:20
Salut les amis je suis nouveau sur ce site que je trouve genial et j'ai un probleme a vous poser.
prenez les nombres de 1 a 50 .En suite prenez la racine de chacun de ses nombres.
Le but est de touver la somme des racines qui sera proche de la valeur (30*pi) (30*3.14) en indiquant par 1 ou 0 les chiffres utlilises pour avoir cette somme.
J'arrive a le faire facilement en excel par le solveur mais en VBA j'ai de la misere.
J'attends vos suggestions .Je precise que c'est en VBA .MERCI davance
1 racine(1)
2 racine (2)
3.
..
.
50 racine(50)
resultat voulu = 30*valeur de (Pi)
A voir également:
[Déplacé .Net --> VBA] retrouver un resulat a l'aide de certaines valeurs
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 nov. 2009 à 07:52
Salut
Deux choses :
-1- la méthode de résolution
-2- la technique à appliquer
Pour la méthode, c'est la même que pour le rendu de monnaie en fonction des pièces dont tu disposes :
Il faut commencer par le plus grand chiffre (racine pour toi).
Si ce chiffre est supérieur au chiffre cible, tu ne le gardes pas.
Si ce chiffre est inférieur ou égal au chiffre cible, tu le gardes. Le chiffre cible devient alors égal au chiffre cible initial moins le chiffre que tu viens de sélectionner.
Puis, tu passes au chiffre suivant (plus petit), et tu recommences le même raisonnement.
Exemple :
Chiffre cicle = 29
Je dois trouver ce qui le compose avec 20, 10, 5, 3, 2 et 1
20 est plus petit que 29 : Je le garde et ma cible devient 29 - 20 = 9
10 est plus grand que 9. Je ne le prends pas
5 est plus petit que 9 : Je le garde et ma cible devient 9 - 5 = 4
3 est plus petit que 4 : Je le garde et ma cible devient 4 - 3 = 1
2 est plus grand que 1 : Je ne le garde pas
1 est plus petit ou égal à 1 : Je le garde et ma cible devient 1 - 1 = 0
Résultat : 20, 5, 3 et 1 seront retenus
Tu fais le même raisonnement avec tes racines.
Pour la technique, est-ce que tu sais maintenant comment faire ?
Une simple boucle "For-Next" avec "Step - 1" suffit
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
gfaizou
Messages postés2Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention26 novembre 2009 26 nov. 2009 à 18:20
Salut c'est tres apprecié de ta part d'avoir répondu rapidement comme sa.Je te remercie infiniment .Je n'ai pas encore essayer ca mais ton raisonnement est tres intelligent et bon .Des que je le ferai je te ferai savoir.
Merci encore agréable journée