QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3134|回复: 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
    百鸡问题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
    转播转播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-4-18 13:13 , Processed in 0.432744 second(s), 61 queries .

    回顶部