Reconstituer une somme à partir d'une liste de valeur [Résolu/Fermé]

-
Bonjour à tous !

Voila mon titre ne veut rien dire du tout, mais en si peu de mots je ne savais pas vraiment comment faire passer l'idée.

Je cherche un logiciel qui serait capable de me faire une somme de nombres (nombres piochés dans ma base de données) afin de tomber sur un résultat précis.
Pour être plus clair si je ne le suis pas :

Je veux 1000 g de roches, ou 1000 km de trajet, ou 1000 autres choses.
Prenons l'exemple des kilometres.
Je rentre dans ma base de données un grand nombre de trajets allé-retour qui partent tous de la Ville A.
J'aurai donc une base de données dans le style :
Ville / Km allé-retour
Ville B - 42 km
Ville C - 17 km
Ville D - 82 km
etc ...

Je veux que le programme pioche dans la base de données pour me faire un total de 1000 km avec un nombre de choix limités.
Par exemple je veux pouvoir dire un programme : Fait moi un total de 1235 km avec un choix de 23 trajets aléatoires.

Selon vous un tel programme existe t'il ? Si oui, lequel ?
Est ce possible avec un tableur type Excel ? Si oui, j'ai besoin d'un cours.

Merci, à plus !
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
16983
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 novembre 2019
3679
1
Merci
Bonjour,

j'ai changé le titre, et ci après un lien de notre ami Eriiic que je salue

http://cjoint.com/14ma/DCrxbr4PYST.htm

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70571 internautes nous ont dit merci ce mois-ci

Re !

Merci ça à l'air de coller à ce dont j'ai besoin.
J'imagine que je peux remplir la colonne "Valeurs" avec mes kilomettres.
Est il possible d'associer mes kilometres aux villes correspondantes ?
Et que du coup, en meme temps que le calcul se fait, chaque trajet ressort avec sa ville correspondante ?
(oui je vais chercher loin ^^ )

Merci en tout cas.
Je viens de voir que c'était possible avec la colonne juste à gauche ^^.
Donc pour ça c'est bon.

En revanche, j'ai rentré 122 valeurs, je demande un résultat à 1420 avec 20 valeurs mini, et en 2 minutes de recherche il n'a toujours rien trouvé.
Messages postés
16983
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 novembre 2019
3679
1
Merci
Re,

Oui mais comme c'est un code d'Eriiic, clic sur son pseudo et envoi lui un petit mot pour attirer son attention

S'il ne répond pas je regarderais le code

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70571 internautes nous ont dit merci ce mois-ci

Oups je n'avais pas vu ta réponse désolé ^^.
Je vais fouiller encore un peu tout seul et si je rame trop je le contacterai.
Merci beaucoup !
Messages postés
23081
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2019
5758
1
Merci
Bonjour à tous,

Déjà la dernière version, la 4.3.2 : http://cjoint.com/?DFlqxsDvy3o

Il n'y a pas d'algorithme de résolution pour ces problèmes.
Il faut explorer toutes les combinaisons, avec pour seule amélioration possible l'élagage des branches inutiles (pas la peine de continuer à tester l'ajout d'autres valeurs si on a déjà dépassé la somme).

En revanche, j'ai rentré 122 valeurs, je demande un résultat à 1420 avec 20 valeurs mini
Choisir 20 valeurs sur 122 ça doit faire FACT(122)/FACT(122-20) , soit 1.0271E+41 possibilités, un rien.
et en 2 minutes de recherche il n'a toujours rien trouvé.
Ben non.
A 500000 combinaisons testées par minutes, il doit te falloir un nombre considérable d'années ou de siècles pour tout explorer je pense.
Il faudrait avoir le cul sacrément bordé de nouilles pour tomber dessus en moins de 2 min. Ca peut arriver, mais bon...
Ensuite il reste les cas avec 21, 22, 23, ... valeurs a explorer.

Je ne sais pas quel est ton problème de départ, mais si tu n'as pas d'algorithme de résolution je crois que tu ferais mieux de t'orienter vers une recherche aléatoire qui retient la meilleure solution. Plus ça tourne, plus elle peut s'améliorer. Sans être sûr de l'avoir, et sans savoir si tu en es loin ou non.
Et comme c'est simple tu contrôles plus de combinaisons par minute.
eric

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70571 internautes nous ont dit merci ce mois-ci

Salut Eric !

Concernant le nombre de km/jour il n'y a rien de fixé, faire 3 km un jour et 98 km le lendemain ce n'est pas un soucis.
Concernant mes 122 valeurs j'ai une moyenne à 58.56. Donc un tirage moyen à 1171 pour 20 termes. (Certains mois il me faudra jusqu'à 23 termes, soit un tirage moyen à 1346 )

Je te met la liste exacte ici : http://cjoint.com/14jn/DFmjLAicnBc.htm

Voila qui devrait être plus concret.
Merci,
Kuss.
eriiic
Messages postés
23081
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2019
5758 -
Bonjour,

Bonne nouvelle : le programme réagit très bien avec ta série.
Il atteint la cible le plus souvent en une fraction de seconde, au pire à 1 ou 2 km près (testé sur des tirages aléatoires compris entre 1000 et 1600)
J'abandonne donc l'idée d'un indice de faisabilité inutile.
Mauvaise nouvelle : si tu utilises libre office et non excel les macros sont incompatibles.

Je termine les tests et les finitions un peu plus tard.
eric
Kusss
Messages postés
31
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
3 mai 2016
7 -
Salut !
La liste a été faite avec openoffice oui mais depuis que j'ai découvert ton outil j'ai pris Excel 2013 parce que j'avais effectivement constaté le problème sur les macros.

Si tu arrives à faire fonctionner tout ça je vais revivre, héhé.
Merci beaucoup.

(Et en passant j'ai créé un compte sur CCM c'est plus simple pour suivre les discussions ^^, et puis ça m'a donné envie d'aider les gens aussi )
eriiic
Messages postés
23081
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2019
5758 -
Et bien bienvenue au club ;-)

J'ai mis 60s en temps max pour rendre la main, le plus souvent tu as le résultat en moins de 0.5s.
Un doubles-clic sur un total te permet de filtrer la solution.
En B1 j'ai mis une formule qui prépare la valeur du prochain test (cliquer sur Feu). En marche normale y saisir ton kilométrage cible.
A tester : http://cjoint.com/?DFmmrrFHZ1g

eric
Kusss
Messages postés
31
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
3 mai 2016
7 -
Tu déchiiires !
Merci beaucoup pour ton aide, ça m'enlève une grosse épine du pied.
Messages postés
23081
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2019
5758
1
Merci
Correction d'un petit bug d'affichage si un seul résultat trouvé, plus 2 autres petits bug et qq changements cosmétiques :
http://cjoint.com/?DFmp0kzgA9F

Je pense à un truc.
Est-ce qu'une option où tu saisirais 1 ou 2 libellés qui imposerait qu'ils soient présents t'intéresserait ?

eric

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70571 internautes nous ont dit merci ce mois-ci

Messages postés
31
Date d'inscription
jeudi 12 juin 2014
Statut
Membre
Dernière intervention
3 mai 2016
7
0
Merci
Pour le besoin que j'en ai l'option que tu proposes ne sera pas utile.
Je n'ai pas de cas ou je dois impérativement avoir tel ou tel trajet de façon obligatoire sur un mois.
(Et quand bien même cela devrait arriver un beau jour d'hiver je peux faire : kmCible - kmLibelOblig = Cible avec nbTermes -1 ou -2 ou -3 selon le nombre de trajets obligatoires)

C'est déja énorme ce que tu as pu faire.
Maintenant je vais surtout agrandir ma base de données de trajets.

Je sais pas vraiment comment te remercier ^^ c'est limite un travail qui mérite salaire ça dans la vie professionnelle.

Merci beaucoup.
eriiic
Messages postés
23081
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2019
5758 -
ok, c'est donc fini. Je met en résolu pour toi (en haut vers ton titre, pour la prochaine fois)
Correction d'un dernier (j'espère) petit bug : http://cjoint.com/?DFmtszBQFz0

eric