- 在线时间
- 69 小时
- 最后登录
- 2014-11-17
- 注册时间
- 2012-3-15
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 1378 点
- 威望
- 0 点
- 阅读权限
- 40
- 积分
- 505
- 相册
- 0
- 日志
- 5
- 记录
- 6
- 帖子
- 174
- 主题
- 26
- 精华
- 0
- 分享
- 2
- 好友
- 28
升级   68.33% TA的每日心情 | 郁闷 2014-11-17 00:20 |
|---|
签到天数: 106 天 [LV.6]常住居民II
 群组: Matlab讨论组 群组: 学术交流A 群组: 学术交流B 群组: 数学建模培训课堂1 群组: 哈尔滨工业大学建模团 |
百鸡问题! q9 P# m2 k/ A7 e5 D
, o) C- @4 A% L% Y1 K; c 今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。”
+ ^) ^8 M' \7 _1 C2 f0 |" o编辑本段+ R- _" C9 R2 h$ Y9 e- i* s
原书说明
1 f7 J+ A+ m: T" C
2 c* N8 X9 _1 i! a 原书没有给出解法,只说如果少买7只母鸡,就可多买4只公鸡和3只小鸡。所以只要得出一组答案,就可以推出其余两组答案。中国古算书的著名校勘者甄鸾和李淳风注释该书时都没给出解法,只有约6世纪的算学家谢察微记述过一种不甚正确的解法。到了清代,研究百鸡术的人渐多,1815年骆腾风使用大衍求一术解决了百鸡问题。1874年丁取忠创用一个简易的算术解法。在此前后时曰醇(约1870)推广了百鸡问作《百鸡术衍》,从此百鸡问题和百鸡术才广为人知。百鸡问题还有多种表达形式,如百僧吃百馒,百钱买百禽等。宋代杨辉算书内有类似问题,中古时近东各国也有相仿问题流传。例如印度算书和阿拉伯学者艾布·卡米勒的著作内都有百钱买百禽的问题,且与《张邱建算经》的题目几乎全同。! A- q9 J/ L0 |- p% V }
编辑本段) U- w) a6 o7 s: i# o
解法
9 v- I* A7 H* ~6 ?! i( \8 ?! v7 ?% l3 r* m' {: `
中国古代算书《张丘建算经》中有一道著名的百鸡问题:公鸡每只值5 文钱,母鸡每只值3 文钱,而3 只小鸡值1 文钱。现在用100 文钱买100 只鸡,问:这100 只鸡中,公鸡、母鸡和小鸡各有多少只?4 M9 ]6 a5 ]4 s: z) r7 ^0 y, X
这个问题流传很广,解法很多,但从现代数学观点来看,实际上是一个求不定方程整数解的问题。解法如下: A) C5 I2 H* p' U: j6 k8 Y" ^
设公鸡、母鸡、小鸡分别为x、y、z 只,由题意得:
0 t% w; A- H9 Q% ~/ d7 h ①……x+y+z =100! k' ]/ E% `/ c/ G+ W
②……5x+3y+(1/3)z =100
5 W& o3 G2 s @) d- ~% e 有两个方程,三个未知量,称为不定方程组,有多种解。$ B1 t$ r1 R5 o! w$ a
令②×3-①得:7x+4y=100;8 J) Y& w' _" M( a9 W
所以y=(100-7x)/4=25-2x+x/4. z0 k$ g9 F$ D
令x/4=t, (t为整数)所以x=4t: ?- P- d" j3 Y3 L2 l; m( c' @, n
把x=4t代入7x+4y=100得到:y=25-7t
7 x1 |. I" W/ f- z8 x 易得z=75+3t4 C; W% M; G* q R1 J
所以:x=4t
* A, j7 ^- g2 r% r y=25-7t
7 d1 f" |% D* S* C- H z=75+3t+ |9 [* h2 Y- M1 h0 l
因为x,y,z大于等于0
2 u% S; |$ r& ]& n: D) A. L* H 所以4t大于等于0! k: E3 `3 F. Q8 g- s. o% w! l: P A8 X+ p
25-7t大于等于01 {" H" x+ ^1 G: F" g6 q& q# H
75+3t大于等于0
( p, m R# c- A 解得t大于等于0小于等于25/7 又因为t为整数4 i' x- G. J9 B& A% ]5 x' E; u) F
所以t=0,1,2,3(这里不要忘记t有等于0得可能)1 C& H8 i6 N7 }0 V0 m0 E: M
当t=0时
$ H2 e+ V$ U! c9 w/ X" I6 r, G) { x=0,y=25,z=75; Z. x, A* u. I1 q3 e+ V2 |6 L* ~
当t=1时
4 _9 `7 f- \( U% r/ |6 Q8 J x =4;y =18;z =78; F8 o9 O& M2 p' E
当t=2时
5 P% F% `5 ^, D x =8;y =11;z =81
- }- i2 c& Q$ @4 T 当t=3时6 x3 g% k/ }/ p; v5 T
x =12;y =4;z =84
# f2 n* `+ I# }6 \' w编辑本段+ M g6 n9 {9 Y& T8 b* i! `; q6 ~
C语言解法: A1 A3 y) I0 d5 d* U% V
4 S. b: g0 T& L8 _- T' |& Y# B
2 K+ q9 m7 I$ N
#include <stdio.h>0 d5 _1 N- ~9 G* {8 y6 y4 Z
void main()
9 d w$ a+ I1 p2 z0 Y5 e{
( [# g6 n9 T/ }int cocks=0,hens,chicks;5 g/ r1 @" V& |5 P+ D0 f6 U
while(cocks<=20): b3 G5 b; G+ _) `
{
3 o) n# ^& o$ p( L) Yhens=0;
6 ]6 b% ]( v* q' H7 nwhile(hens<=33)
' s: F4 ?9 N# r- I, @{
. p; D u( ?' `, J- t7 r" Z; Cchicks=100-cocks-hens;7 L/ Q! \1 D$ s3 ~
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)0 g5 x2 ~, R% @3 R( u, U
printf("公鸡%d只,母鸡%d只,小鸡%d只\n\n",cocks,hens,chicks);) V; p; ?, M9 @* I) l. z- n' ~
hens++;
" ^+ V& \7 y! ~9 M9 X}
' p0 S0 y2 x4 h& q7 ccocks++;
4 P6 ?! ]7 z. J5 o% l}/ ?6 v! K4 J4 y$ X! k8 W
}
! N( o+ S8 i3 k输出结果为:; s$ e4 N4 ^) X9 |
公鸡0只,母鸡25只,小鸡75只
" R8 Q0 [2 b+ F4 c 公鸡4只,母鸡18只,小鸡78只; Q5 r! b9 I. p0 e
公鸡8只,母鸡11只,小鸡81只/ a6 |" S' }* d" A2 C1 C' b' w
公鸡12只,母鸡4只,小鸡84只
% r4 A; p* q& {" C# f# l8 v编辑本段9 X2 W: y- x7 J n5 k5 V2 J$ e; ]; k
java语言解法* q: q- ~% j! S6 L
1 h1 q! b" {2 z% ^4 o- \6 e" E
public class BaiJiwenti0 U ?. j4 |0 h* `: i
{' w% P" i* {; D% G* ]8 b; \( I
public static void main (String [] args)3 c% i$ S# D* S5 _* ]4 O. T# s* [
{+ d5 ^" a# P1 n+ g+ _& ]0 R; L0 K; m4 P
for (int x = 0; x <= 19; x++)% m0 n8 ^2 g" K
{
7 x1 h% @. c8 V8 N0 R for (int y = 0; y <= 33; y++)
% x( U) J8 r1 E {
2 Y0 n+ L0 {1 D" W9 t int z = 100 - x - y;" L; r* q5 Y. a8 K; R! P7 S
if((x * 5 + y * 3 + z / 3 == 100 ) && z % 3 == 0)
3 A3 X v( V, A- s' {* p& o {
, Q- r8 b+ f3 ?- ^; a3 U) z/ n System.out.println("可买鸡翁只数:" + x);
& ~) s G- T1 z, `/ l/ W System.out.println("可买鸡母只数:" + y);
( y/ x+ [/ y p) {; | System.out.println("可买鸡雏只数:" + z);
9 H- C3 s* w4 s" R- @9 g% Q" Q }% h Q2 t4 n0 y
}. w) w* A+ p/ I% S
}
/ O8 l- m+ N4 r7 f2 P: U* e8 R }
3 H- T% s: u, u0 N# T }. W- R% U* z! h2 J! t
|
zan
|