- 在线时间
- 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 群组: 哈尔滨工业大学建模团 |
百鸡问题8 G4 X& n/ Z" s2 y; H! j
; b8 ~- | {- y; C& q 今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?答曰:鸡翁四,值钱二十;鸡母十八,值钱五十四;鸡鶵七十八,值钱二十六。又答:鸡翁八,值钱四十;鸡 母十一,值钱三十三,鸡鶵八十一,值钱二十七。又答:鸡翁十二,值钱六十;鸡母四、值钱十二;鸡鶵八十 四,值钱二十八。”
; i0 N+ G$ _, f& {/ |编辑本段: |! e' v) J# T; W$ i7 B
原书说明. y. v& m p) s$ c; _# u
! J- I$ {' N% L" R7 S/ \+ | 原书没有给出解法,只说如果少买7只母鸡,就可多买4只公鸡和3只小鸡。所以只要得出一组答案,就可以推出其余两组答案。中国古算书的著名校勘者甄鸾和李淳风注释该书时都没给出解法,只有约6世纪的算学家谢察微记述过一种不甚正确的解法。到了清代,研究百鸡术的人渐多,1815年骆腾风使用大衍求一术解决了百鸡问题。1874年丁取忠创用一个简易的算术解法。在此前后时曰醇(约1870)推广了百鸡问作《百鸡术衍》,从此百鸡问题和百鸡术才广为人知。百鸡问题还有多种表达形式,如百僧吃百馒,百钱买百禽等。宋代杨辉算书内有类似问题,中古时近东各国也有相仿问题流传。例如印度算书和阿拉伯学者艾布·卡米勒的著作内都有百钱买百禽的问题,且与《张邱建算经》的题目几乎全同。
5 ?% v2 U1 ?8 l0 z' Q编辑本段
* B; ?! j9 |! s- j解法) x! F m" o; v" o0 i5 Q
) S6 ? y) x! y
中国古代算书《张丘建算经》中有一道著名的百鸡问题:公鸡每只值5 文钱,母鸡每只值3 文钱,而3 只小鸡值1 文钱。现在用100 文钱买100 只鸡,问:这100 只鸡中,公鸡、母鸡和小鸡各有多少只?% V9 X/ ?2 S) A* X
这个问题流传很广,解法很多,但从现代数学观点来看,实际上是一个求不定方程整数解的问题。解法如下:& D7 M5 K m3 y' I
设公鸡、母鸡、小鸡分别为x、y、z 只,由题意得:
2 d6 s" T$ `5 E3 f6 c ①……x+y+z =100 x9 B# J I0 _( n% y+ A
②……5x+3y+(1/3)z =100
" _$ g, F- K8 P9 | 有两个方程,三个未知量,称为不定方程组,有多种解。# O0 Y5 x; D- h( F) b2 w
令②×3-①得:7x+4y=100;
! A& \% u4 I6 _ 所以y=(100-7x)/4=25-2x+x/4
2 F* E' z+ X" Y" L; c 令x/4=t, (t为整数)所以x=4t4 ^7 g L: U; @& Y, ?& I- @
把x=4t代入7x+4y=100得到:y=25-7t6 @& j& ~) p. R& e' P
易得z=75+3t
4 z& |! h4 [- F5 F 所以:x=4t
" C, R; z) Q; C0 f% v! G, P. ?- } y=25-7t
! R( Y5 d: A; o z=75+3t
) Y: f( l' x! @+ e6 S: f 因为x,y,z大于等于0
: R W- T; x; x6 D# L. ] 所以4t大于等于06 h+ o: l1 [# u4 Z; i. S. M
25-7t大于等于0
$ n7 g2 C' @4 E+ i 75+3t大于等于0
" G% |$ p8 S$ t6 x: l; b 解得t大于等于0小于等于25/7 又因为t为整数% v' R' L1 w7 ?- s4 Y
所以t=0,1,2,3(这里不要忘记t有等于0得可能)0 V! W2 m7 {; M. n8 J0 A! c
当t=0时& M$ Z0 k! K, ~7 m$ D1 p
x=0,y=25,z=75
+ V" `6 t& L8 ? 当t=1时
& {5 \7 T; s2 N1 O x =4;y =18;z =78( ]: |+ ]8 a' b
当t=2时
8 e3 I* x: Y6 ~: ^4 O" G x =8;y =11;z =81; R2 Z, G" ]0 f* e, V7 W+ v9 ^+ [
当t=3时
+ o% k: e, o5 t5 P! R2 K+ ]' G x =12;y =4;z =841 Q) r, X7 P0 p4 O+ K- B2 o3 S% F- o7 d
编辑本段
6 S) \/ D3 V, F7 E/ N9 sC语言解法
' c7 y) A5 P4 h; E' I$ W' A/ E" y; f Y' N" x
+ O8 i, n( b' {5 s
#include <stdio.h>
. I8 g" l+ w# p' @8 t) |7 \6 `void main(): Y( W; M% W$ `
{% {% J7 {/ l) j& V$ _* c
int cocks=0,hens,chicks;: D) X* h1 C9 I0 r' b4 f2 H6 a, w& R
while(cocks<=20)) i* U# \8 \9 Y! t
{
# F! Z1 r! G+ V( ahens=0;( l2 M) c# l& Z7 d2 V( d, n
while(hens<=33)
) A$ G$ z/ B3 ~7 |# |; A" s{
. ]3 z& x& i4 W2 w' H, Y8 Kchicks=100-cocks-hens;
, R k- V* Q; r# |+ K* D% rif(5.0*cocks+3.0*hens+chicks/3.0==100.0)" o& s; T( Q0 ^* H0 b5 k
printf("公鸡%d只,母鸡%d只,小鸡%d只\n\n",cocks,hens,chicks);
: J/ ^& r3 K+ ^1 M" i2 m% q% W( }hens++;7 T3 H0 ?" J# `3 e, w8 V) t
}
6 `( d/ K# M- ecocks++;
3 K: e4 K: P5 }5 Q; [}
4 ?8 u7 U4 b1 k9 k. W6 K* [8 w# d}
: m, r; A2 B, \9 P, _输出结果为:
* A; @3 Y4 ^/ K9 Z* a! m, ?+ a 公鸡0只,母鸡25只,小鸡75只& g+ n+ V. y* G* A
公鸡4只,母鸡18只,小鸡78只
0 \2 r! \( s; w" n* g2 E 公鸡8只,母鸡11只,小鸡81只
# s" D2 n: j; F 公鸡12只,母鸡4只,小鸡84只
, {/ F+ Q1 D4 N: [编辑本段. I4 ?: |* v4 w _
java语言解法
, k1 {0 d ~0 @' L3 o3 m: U1 G+ s
: h( F# S! ~# z0 P/ N public class BaiJiwenti
5 v8 Y* Y( W4 j7 ^* }( a {
0 a0 a6 Q. C* Q8 q( B: c9 C2 { public static void main (String [] args)
2 c, Y2 W1 W( Z3 \ {
0 k( v- ^$ [% M4 ~ i) r for (int x = 0; x <= 19; x++)
* C" ?' k9 K! r" [) i( O2 ? { n5 b( ~1 D: }+ s* Q4 r
for (int y = 0; y <= 33; y++)( }8 d9 l: W% K! L4 H! u$ S% n
{8 k, o+ e. o2 z+ U! n
int z = 100 - x - y;2 Z* x2 l4 \& l9 E& A. ? ]
if((x * 5 + y * 3 + z / 3 == 100 ) && z % 3 == 0)& {- _) E- P8 V6 b/ {# b. \' ^7 R
{
8 c- {& e- h4 E8 a/ a8 }% q) M System.out.println("可买鸡翁只数:" + x);; ^- |, b' O' q2 b' N
System.out.println("可买鸡母只数:" + y);" b! H& M" f& z1 V+ p0 b! W
System.out.println("可买鸡雏只数:" + z);/ D9 n. B' Q# i9 c
}
" I: x# P3 J% A7 c }/ {( \9 U! W2 M! N* {
}
Y' \7 W) _* y2 K4 U5 O( H( M }; l7 X. R5 k$ e8 f- s5 A. E
}1 Z# D f0 \5 ?) o! N) z- H
|
zan
|