100 con trâu 100 bó cỏ ,1 trâu đứng ăn 5 bó cỏ ,1 trâu nằm ăn 3 bó cỏ ,3 trâu già ăn 1 bó cỏ .Hãy xây dựng thuật toán để tìm " mỗi loại trâu có mấy con " ?
Gọi trâu đứng là x, trâu nằm là y, trâu già là z (x,y,z thuộc N*)
Ta có hệ phương trình nghiệm nguyên.
x+y+z=100 (*)
5x+3y+z/2=100 (x<20, y<33) (**)
<=> 10x+6y+z=200
<=>10x+6y+(100-x-y)=200\<=> 9x+5y=100 (***) suy ra x<11
vì 100 chia hết 5, 5y chia hết 5 suy ra 9x phải chia hết 5.
suy ra x chia hết 5. mà 0<x<11 suy ra x=5,10,
Với x=5 thay vào (***) suy ra y=11, thay vào (*) suy ra z=84
Với x=10 thay vào (***) suy ra y=2, thay vào (*) suy ra z=88
Vậy có 2 nghiệm là (x,y,z)=(5,11,84); (10,2,88)
Mà bài này hình như là trâu đứng 5 bó, trâu nằm 3 bó, trâu già 3 con 1 bó. Nếu là trâu già 3 con 1 bó thì giải như sau.
x+y+z=100 (x,y,z thuộc N*) (1)
5x+3y+z/3=100 (x<20, y<33)
<=> 15x +9y+z=300 <=> 15x +9y +(100-x-y) =300
<=> 14x +8y =200 (2) suy ra x<14
vì 200 chia hết 8, 8y chia hết 8 suy ra 14x chia hết 8 suy ra x chia hết 4.
mà x<14 suy ra x=4,8,12
Với x= 4 thay vào (2) suy ra y=18, thay vào (1) được z=78
Với x= 8 thay vào (2) suy ra y=11, thay vào (1) được z=81
Với x=12 thay vào (2) suy ra y=4, thay vào (1) được z=84.
Vậy có 3 nghiệm (z,y,z) = (4,18,78); (8,11,81); (12,4,84)