équation à 20 inconnue
Cernunnos
-
JvDo Messages postés 2012 Statut Membre -
JvDo Messages postés 2012 Statut Membre -
Bonjour,
Voilà mon souci : je ne suis ni programmeur ni mathématicien, et je cherche à résoudre une équation telle que celle-ci : 80 a + 148 b + 464 c + ... + 2498 m = 13378
Comme outils, je n'ai en tout et pour tout que excel... ^__^ Hem...
Pourquoi faire ? Je participe à un jeu de simulation en ligne, dans lequel on peut espionner les forces ennemies, ce qui nous donne un total de points. Et le but serait de pouvoir connaître la composition "précise" de son armée. J'essaye de faire ça "à la main", à tâton, mais ce n'est pas évident.
J'y ai réfléchi un petit peu, et je pense que des solutions multiples sont envisageables pour chaque équation. Je pensais qu'on pouvait peut-être faire appel à un algorithme qui explorerait toutes les possibilités. A part ça, je n'ai pas la plus petite idée de la manière de procéder. J'ai lu sur une autre page de votre forum que l'on pouvait réduire l'équation de manière à arriver à une seule inconnue et que ce n'était pas facile. Est-ce possible sous excel ? Faisable par un débutant motivé ?
Merci de m'avoir lu.
Yann
Voilà mon souci : je ne suis ni programmeur ni mathématicien, et je cherche à résoudre une équation telle que celle-ci : 80 a + 148 b + 464 c + ... + 2498 m = 13378
Comme outils, je n'ai en tout et pour tout que excel... ^__^ Hem...
Pourquoi faire ? Je participe à un jeu de simulation en ligne, dans lequel on peut espionner les forces ennemies, ce qui nous donne un total de points. Et le but serait de pouvoir connaître la composition "précise" de son armée. J'essaye de faire ça "à la main", à tâton, mais ce n'est pas évident.
J'y ai réfléchi un petit peu, et je pense que des solutions multiples sont envisageables pour chaque équation. Je pensais qu'on pouvait peut-être faire appel à un algorithme qui explorerait toutes les possibilités. A part ça, je n'ai pas la plus petite idée de la manière de procéder. J'ai lu sur une autre page de votre forum que l'on pouvait réduire l'équation de manière à arriver à une seule inconnue et que ce n'était pas facile. Est-ce possible sous excel ? Faisable par un débutant motivé ?
Merci de m'avoir lu.
Yann
A voir également:
- équation à 20 inconnue
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Appeler en inconnue - Guide
- Editeur d'équation - Télécharger - Vie quotidienne
- Formule équation - Télécharger - Études & Formations
- Comment mettre une note sur 20 - Forum Bureautique
24 réponses
1 équation à 20 inconnues... votre résultat confirme ce que je disais sur une infinité de solutions ;) En ne gardant que les nombres entiers, effectivment il doit y en avoir un nombre fini, mais bonne chance quand même pour la quantité !
Bonsoir,
pour tes coefficients, ça donne :
niveaux traités :___Nb_____durée___Nb solutions___Nb combinaisons
_____20 à 7_____14______8mn_______149________147 253
_____20 à 6_____15_____31mn_______649 ________579 436
_____20 à 5_____16___1h43mn______2,832_______2 343 533
voici le code :
(je précise que je n'ai pas fait dans la dentelle)
Sur une feuille, mettre en A1:T1 et A4:T4 les libellés I01 --> I20 pour rendre lisible l'affichage des résultats.
Puis, lancer la macro une_équation_20_inconnues()
pour tes coefficients, ça donne :
niveaux traités :___Nb_____durée___Nb solutions___Nb combinaisons
_____20 à 7_____14______8mn_______149________147 253
_____20 à 6_____15_____31mn_______649 ________579 436
_____20 à 5_____16___1h43mn______2,832_______2 343 533
voici le code :
(je précise que je n'ai pas fait dans la dentelle)
Sur une feuille, mettre en A1:T1 et A4:T4 les libellés I01 --> I20 pour rendre lisible l'affichage des résultats.
Puis, lancer la macro une_équation_20_inconnues()
Sub une_équation_20_inconnues()
result = 13378
C01 = 80: I01 = 0: C02 = 148: I02 = 0
C03 = 196: I03 = 0: C04 = 260: I04 = 0
C05 = 464: I05 = 0: C06 = 518: I06 = 0
C07 = 650: I07 = 0: C08 = 688: I08 = 0
C09 = 908: I09 = 0: C10 = 1326: I10 = 0
C11 = 1452: I11 = 0: C12 = 1612: I12 = 0
C13 = 1694: I13 = 0: C14 = 2040: I14 = 0
C15 = 2498: I15 = 0: C16 = 2724: I16 = 0
C17 = 5164: I17 = 0: C18 = 5180: I18 = 0
C19 = 6042: I19 = 0: C20 = 8052: I20 = 0
Som00 = 0: compteur = 0: [V3] = Now
For I01 = 0 To Int((result - Som00) / C01)
som01 = Som00 + I01 * C01: Cells(2, 1).Value = I01
For I02 = 0 To Int((result - Som1) / C02)
Som02 = Som1 + I02 * C02: Cells(2, 2).Value = I02
For I03 = 0 To Int((result - Som02) / C03)
Som03 = Som02 + I03 * C03: Cells(2, 3).Value = I03
For I04 = 0 To Int((result - Som03) / C04)
Som04 = Som03 + I04 * C04: Cells(2, 4).Value = I04
For I05 = 0 To Int((result - Som04) / C05)
Som05 = Som04 + I05 * C05: Cells(2, 5).Value = I05
For I06 = 0 To Int((result - Som05) / C06)
Som06 = Som05 + I06 * C06: Cells(2, 6).Value = I06
For I07 = 0 To Int((result - Som06) / C07)
Som07 = Som06 + I07 * C07: Cells(2, 7).Value = I07
For I08 = 0 To Int((result - Som07) / C08)
Som08 = Som07 + I08 * C08: Cells(2, 8).Value = I08
For I09 = 0 To Int((result - Som08) / C09)
Som09 = Som08 + I09 * C09: Cells(2, 9).Value = I09
For I10 = 0 To Int((result - Som09) / C10)
Som10 = Som09 + I10 * C10: Cells(2, 10).Value = I10
For I11 = 0 To Int((result - Som10) / C11)
Som11 = Som10 + I11 * C11: Cells(2, 11).Value = I11
For I12 = 0 To Int((result - Som11) / C12)
Som12 = Som11 + I12 * C12: Cells(2, 12).Value = I12
For I13 = 0 To Int((result - Som12) / C13)
Som13 = Som12 + I13 * C13: Cells(2, 13).Value = I13
For I14 = 0 To Int((result - Som13) / C14)
Som14 = Som13 + I14 * C14: Cells(2, 14).Value = I14
For I15 = 0 To Int((result - Som14) / C15)
Som15 = Som14 + I15 * C15: Cells(2, 15).Value = I15
For I16 = 0 To Int((result - Som15) / C16)
Som16 = Som15 + I16 * C16: Cells(2, 16).Value = I16
For I17 = 0 To Int((result - Som16) / C17)
Som17 = Som16 + I17 * C17: Cells(2, 17).Value = I17
For I18 = 0 To Int((result - Som17) / C18)
Som18 = Som17 + I18 * C18: Cells(2, 18).Value = I18
For I19 = 0 To Int((result - Som18) / C19)
Som19 = Som18 + I19 * C19: Cells(2, 19).Value = I19
For I20 = 0 To Int((result - Som19) / C20)
som20 = Som19 + I20 * C20: Cells(2, 20).Value = I20
'If Abs(Som20 - result) / result < 0.0001 Then Call affiche(I01, I02, I03, I04, I05, I06, I07, I08, I09, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20,compteur)
If som20 = result Then Call affiche(I01, I02, I03, I04, I05, I06, I07, I08, I09, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, compteur)
compteur = compteur + 1
Next I20
Next I19
Next I18
Next I17
Next I16
Next I15
Next I14
Next I13
Next I12
Next I11
Next I10
Next I09
Next I08
Next I07
Next I06
Next I05
Next I04
Next I03
Next I02
Next I01
End Sub
Sub affiche(I01, I02, I03, I04, I05, I06, I07, I08, I09, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, compteur)
Set mapos = Range("A65000").End(xlUp).Offset(1, 0)
mapos.Offset(0, 0).Value = I01: mapos.Offset(0, 1).Value = I02
mapos.Offset(0, 2).Value = I03: mapos.Offset(0, 3).Value = I04
mapos.Offset(0, 4).Value = I05: mapos.Offset(0, 5).Value = I06
mapos.Offset(0, 6).Value = I07: mapos.Offset(0, 7).Value = I08
mapos.Offset(0, 8).Value = I09: mapos.Offset(0, 9).Value = I10
mapos.Offset(0, 10).Value = I11: mapos.Offset(0, 11).Value = I12
mapos.Offset(0, 12).Value = I13: mapos.Offset(0, 13).Value = I14
mapos.Offset(0, 14).Value = I15: mapos.Offset(0, 15).Value = I16
mapos.Offset(0, 16).Value = I17: mapos.Offset(0, 17).Value = I18
mapos.Offset(0, 18).Value = I19: mapos.Offset(0, 19).Value = I20
mapos.Offset(0, 20).Value = compteur: mapos.Offset(0, 21).Value = Now
End Sub
Bonsoir,
un complément pour ceux que ça intéresse : en C++ le temps de traitement devient raisonnable, environ 8mn pour toutes les solutions entières
Cordialement
un complément pour ceux que ça intéresse : en C++ le temps de traitement devient raisonnable, environ 8mn pour toutes les solutions entières
niveau 6 : Duree traitement = 0 m 0 s. Nb Solutions = 398 nb combinaisons = 365.389 niveau 5 : Duree traitement = 0 m 0 s. Nb Solutions = 1.060 nb combinaisons = 854.376 niveau 4 : Duree traitement = 0 m 0 s. Nb Solutions = 3.264 nb combinaisons = 2.392.336 niveau 3 : Duree traitement = 0 m 1 s. Nb Solutions = 9.673 nb combinaisons = 6.922.952 niveau 2 : Duree traitement = 0 m 3 s. Nb Solutions = 34.978 nb combinaisons = 23.202.170 niveau 1 : Duree traitement = 0 m 31 s. Nb Solutions = 331.138 nb combinaisons = 207.110.348 niveau 0 : Duree traitement = 8 m 25 s. Nb Solutions = 5.340.371 nb combinaisons = 3.158.498.324
Cordialement