Bonjour ,
Je viens vers vous car j'ai trouvé dans un vieux livre d'algèbre un problème que j'ai voulu résoudre , mais cela fait plusieurs jours que je bloque sur la finalisation du problème. J'ai trouvé une solution mais j'ai l'impression que c'est juste de la chance car je n'arrive pas à trouver d'autres solutions censées fonctionner.
Je vous présente l'énoncé :
Une fermière achète des oies , des dindons , des poulets et des pigeons. Elle achète en tout 76 animaux. Elle paye les oies 2 euros pièce , les dindons 1 euro et 5 centimes pièce , les poulets 70 centimes l'unité et enfin les pigeons 40 centimes d'euros l'unité.
Sa facture totale est de 70 euros et 70 centimes.
Question : Quel est le nombre d'animaux de chaque espèce qu'elle a acheté ?
Je vous montre mon raisonnement :
Soit x le nombre d'oies , y le nombre de dindons , z le nombre de poulets et t le nombre de pigeons.
On a :
x+y+z+t = 76 (E1)
2x + 1.05y+0.7z + 0.4t = 70.7 (E2)
Je multiplie E2 par 140 pour obtenir des nombres entiers. J'exprime avec E1 x en fonction de y , z et t. Puis je remplace x dans E2 par cette expression avec d'obtenir une équation avec trois inconnues.
J'obtiens :
-19y-26z-32t = - 1626
Nous avons une équation diophantienne que j'ai réussi à résoudre ( Avec k et m des paramètres entiers relatifs)
Les solutions sont :
y= 962-26k-1184m
z= -702+19k+864m
t = 50 +m
On en déduit la valeur de x , x= -234+319m+7k
C'est ensuite que je bloque énormément. En effet je ne sais vraiment comment m'y prendre pour respecter la condition de 76 animaux au total. J'ai voulu résoudre un système d'inéquations du style :
0< -234+319m+7k < 74
0< 962-26k-1184m<74
0< -702+19k+864m<74
0< 50 + m < 74
74 car maximum il me faut 73 animaux d'une espèce pour en avoir un de chaque des trois autres mais ce système ne fonctionne pas. Je me suis dis que ça n'allait pas car on autorise à avoir 73 au maximum dans chaque espèce ce qui n'est pas possible si on a ce nombre partout. Intuitivement je me suis dis qu'il fallait que je fasse en sorte que la somme de ma borne supérieure doit etre égale à 76 mais après comment gérer tous les cas possibles avec la valeur de m variable etc , c'est pas simple.
En tâtonnant et en posant les quatre inéquations précédentes avec 19 à la place de 73 et en se prenant m= -31 , celà me donne le quadruplet suivant qui fonctionne :
13 oies
18 dindons
26 poulets
19 pigeons
Mais ce que je ne comprends pas c'est qu'avec d'autres valeurs de m celà ne fonctionne pas ce qui est bizarre.
Je suis perdu
Merci du soutien si quelqu'un connait la mécanique de ce genre de problème
Tu veux une solution théorique ou un code qui crache toutes les solutions ?
Ton équation diophantienne a effectivement une infinité de solutions et c'est parfaitement normal. Si tu imposes en plus les quatre inégalités que tu as écrites, comme elles sont bilatérales, m et k deviennent bornés et donc il y a une quantitié finie de solutions, éventuellement nulle si les inéquations se contredisent (ce n'est pas le cas, puisque tu exhibé une solution tout à la fin de ton message précédent). Qu'est-ce qui te gène exactement ?
Voilà un petit code Python (c'est cadeau ) qui fait le boulot et affiche proprement les résultats
(https://gist.github.com/rust-play/f73e7e9822d6aca30eaf967f095c0a33)
Ne prête pas trop attention aux 76 premières lignes, c'est juste de la mise en forme. Ni au fait que github dit que c'est du rust, ce n'en est pas
J'utilise z3, qui est un solveur SMT bien pratique, mais tu peux facilement adapter les dernières lignes pour utiliser sympy si tu préfères.
salut
Bonjour,
Ce problème n'a rien d'intéressant.
Tel quel, il y a 57 quadruplets qui satisfont l'énoncé.
... Ce qui rend ce problème inintéressant pour l'attaquer autrement que par un mini programme informatique.
On peut certes diminuer le nombre de cas à étudier par la parité et d'autres astuces, mais le nombre de solutions possibles reste beaucoup trop grand.
Il faudrait quelques conditions supplémentaires dans l'énoncé pour ramener le nombre de solutions à un nombre décent... dans le cas contraire, mettre cet énoncé à la corbeille, c'est tout ce qu'il mérite.
79 ... parce que tu as comptabilisé ceux avec des 0.
Mais la phrase de l'énoncé :
"Une fermière achète des oies , des dindons , des poulets et des pigeons." implique qu'il y ait les 4 types d'animaux présents ... et donc aucun au nombre 0.
En fait, en empêchant les 0, c'est 70 cas qu'il y a et pas 57.
Bonjour,
oui il n'en reste pas moins qu'il sera difficile (mais pas impossible) d'arriver à ces conditions nécessaires et suffisantes donnant exactement les ... solutions comme tu le proposes.
c'est un jeu intéressant mais pour une recherche de solutions directes et rapides il n'en reste pas moins qu'un script est le plus efficace.
Bonjour,
Souvent, dans ce genre d'exercice, afin, comme il est recommandé aujourd'hui de croiser les compétences, on indique le nombre de pattes, ce qui permet d'associer maths et sciences naturelles. Dans le cas présent, évidemment...
Bonjour à tous,
Le pb se résout bien à la main avec un petit peu de calcul sur les entiers.
Je reprends ici ce qu'a écrit carpediem :
40x + 21y + 14z + 8t = 1414 conduit à
32x + 13y + 6z = 806 = 2*13*31
L'étude modulo 13 montre que 6(x+z) 0 [13]
Et que donc 13 | (x+z).
Par ailleurs, si on fait (E1)-21(E2) on aboutit à :
19x - 7z - 13t = -182 = -2*7*13
L'étude modulo 13 montre que 6x-z0 [13] donc 13|6x-z ce qui revient à écrire 13|6x+12z donc 13|x+2z
En combinant ces deux résultats on montre que 13|x et 13|z
Puis on déduit de (E1) que y+t-2 [13] car 76=6*13-2
Notons x=13x' ; z=13z' et y+t=13*u'-2
L'équation (E1) devient:
x'+z'+u'=6 avec les conditions
x', y', u'1
x', y', u'4
En injectant ces notations dans (E2) et en simplifiant par 13 on aboutit à :
40x'+14z'+8u'+y=110, que l'on peut réécrire en éliminant u' comme
32x'+6z'+y=110-8*6=62,
sachant que chaque inconnue vaut au minimum 1.
On voit donc que x' ne peut valoir que 1 (sinon c'est trop grand).
Donc x=13.
Ainsi, il reste à résoudre :
6z'+y = 30, et
z'+u'=5
donc z'=5-u', que l'on injecte dans l'équation du dessus, ce qui donne : y=6u'
Ainsi les solutions au pb initial sont de la forme:
(x,y,z,t)=(13, 6u', 13*(5-u'), 7u'-2) pour u' variant entre 1 et 4, et on réalise que parmi les 4, u'=3 est le seul qui satisfait la contrainte sur le prix.
Je viens de m'apercevoir d'une coquille. On ne peut pas affirmer que 13|x et 13|z mais seulement qu'il divise la somme x+z.
Bonjour,
Je persiste à penser que ce problème est sans le moindre intérêt.
Même en le modifiant par :
"Changer la question " Quel est le nombre d'animaux de chaque espèce qu'elle a acheté ? " en " Quelles sont les possibilités pour le nombre d'animaux de chaque espèce qu'elle a acheté ? "
Il y a 70 quadruplets solutions et rien de vraiment intelligent qui permet de les trouver tous ou de simplement les dénombrer ... si ce n'est un mini programme informatique.
Alors où est l'intérêt mathématique ?
Mais chacun peut en penser ce qu'il veut...
Ou trouver une méthode intelligente qui en vient à bout par des raisonnements courts et subtils si possible.
Re-Bonjour,
@candide2, c'est peut-être une déformation professionnelle de ma part, mais les problèmes d'ingénierie ressemblent bien plus souvent à ce genre de choses qu'à des problèmes qui se résolvent de manière élégante et subtile. Il est courant d'avoir plein de manières d'aboutir à un résultat satisfaisant, voire d'avoir des problèmes mal posés voire même de ne pas avoir toute l'information. Donc ça peut avoir un certain mérite ; mais peut-être pas dans un forum de math certes.
Pour en revenir au pb je n'ai pas pu tiré davantage d'information avec les congruences (voir mon erreur plus haut), donc voici une méthode qui utilise une résolution de système à 2 paramètres :
Notons
x+z=13v' et
y+t=13u'-2.
Et on note que u'+v'=6
On injecte dans (E2) et on obtient :
26x + 14*13*v' + 8*13*u' + 13y= 110*13, soit
2x+14v'+8u'+y=110
Donc y=2y' donc on réduit encore un peu le problème :
x+7v'+4u'+y'=55 avec v'+u'=6 donc,
x+3v'+y'=31
D'où :
x+z=13v'
x+y'=31-3v'
y=2y'
y+t=13u'-2
u'+v'=6
Donc en éliminant u' et y
x=31-(3v'+y')
x+z=13v'
t=13*(6-v')-2=76-(13v'+2y')
Les solutions seront toujours des nombres entiers (ce que l'on veut). J'aboutis à:
x=31- (3v'+y')
y=2y'
z=y'+16v'-31
t=76-(13v'+2y')
où l'on peut choisir v' librement entre 1 et 5, et où y' est choisi librement mais sans donner de solution négative ou nulle, c'est à dire que y' est choisi dans l'intervalle entier [31-16v'; min(38-6.5v', 31-3v') ]
Quelques solutions vérifiées
(v',y')=(1,16) => (12,32,1,31)
(v',y')=(1,17) =>(11,34,2,29)
(v',y')=(2,1) =>(24, 2, 2, 48)
...
Bonjour,
"Donc ça peut avoir un certain mérite ; mais peut-être pas dans un forum de math certes. "
Et bien voila, là on est d'accord.
Si on doit résoudre un tel type d'exercice comme "ingénieur" dans le cadre de son boulot. Time is money et tout qui tentera de le résoudre autrement que par 10 lignes de programme informatique avec résultats immédiats sera "remercié".
Et dans le cadre "Enseignement", on peut faire de jolis raisonnements qui aboutissent par exemple à tes propositions ...
qui ne permettent pas vraiment de trouver rapidement toutes les solutions, ni même d'en trouver aisément le nombre...
Ce qui me conforte dans mon opinion, un tel exercice posé dans l'enseignement (avec interdiction d'utiliser l'informatique) ne mérite qu'une place ... dans la corbeille.
Chacun son avis.
effectivement ...
en math expertes cet exercice a un intérêt pour déterminer des propriétés des solutions, travailler la divisibilité et autres ... donc manipuler et travailler des propriétés du cours !!
l'objectif n'étant pas nécessairement de résoudre ce pb ... pénible ....
Rebonjour,
On peut quant même dénombrer les solutions et les trouver ... si on le veut vraiment.
Je propose les 5 familles de quadruplets solutions :
a) x = 28-y' ; y = 2y' ; z = y' - 15 ; t = 63-2y' avec 16 <= y' <= 27 ----> 12 quadruplets solutions.
b) x = 25-y' ; y = 2y' ; z = y' + 1 ; t = 50-2y' avec 1 <= y' <= 24 ----> 24 quadruplets solutions.
c) x = 22-y' ; y = 2y' ; z = y' + 17 ; t = 37-2y' avec 1 <= y' <= 18 ----> 18 quadruplets solutions.
d) x = 19-y' ; y = 2y' ; z = y' + 33 ; t = 24-2y' avec 1 <= y' <= 11 ----> 11 quadruplets solutions.
e) x = 16-y' ; y = 2y' ; z = y' + 49 ; t = 11-2y' avec 1 <= y' <= 5 ----> 5 quadruplets solutions.
Soit au total : 12+24+18+11+5 = 70 quadruplets solutions qu'on trouve à partir du tableau ci-avant.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :