QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3414|回复: 1
打印 上一主题 下一主题

百鸡问题

[复制链接]
字体大小: 正常 放大
marchboy 实名认证       

26

主题

4

听众

505

积分

升级  68.33%

  • TA的每日心情
    郁闷
    2014-11-17 00:20
  • 签到天数: 106 天

    [LV.6]常住居民II

    新人进步奖

    群组: Matlab讨论组

    群组: 学术交流A

    群组: 学术交流B

    群组: 数学建模培训课堂1

    群组: 哈尔滨工业大学建模团

    跳转到指定楼层
    1#
    发表于 2012-6-9 00:10 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    百鸡问题! 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
    转播转播0 分享淘帖0 分享分享1 收藏收藏0 支持支持0 反对反对0 微信微信

    33

    主题

    10

    听众

    1691

    积分

    升级  69.1%

  • TA的每日心情
    开心
    2014-7-8 08:29
  • 签到天数: 201 天

    [LV.7]常住居民III

    发帖功臣 新人进步奖

    群组: PLC和单片机

    群组: 2012第三期美赛培训

    群组: MCM优秀论文解析专题

    群组: 沈阳理工应用技术学院

    群组: 学术交流B

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-10-12 06:52 , Processed in 3.173456 second(s), 60 queries .

    回顶部