孙子算经 之 物不知数(韩信点兵)

《孙子算经》作者不可考,成书于四、五世纪南北朝时期,传本分三卷;

它是算经十书之一, 中国古代最重要的数学著作之一, 。

其下卷26题,“物不知数”为其最重要的成就之一:

“今有物,不知其数。三三数之,剩二;五五数之,剩三;七七数之,剩二。问:物几 何?答曰:二十三”

算子算经不仅仅给出了题目的答案,更重要的是给出了解法——西方称之为:中国同余数定理:

“术曰:三三数之,剩二,置一百四十;五五数之,剩三,置六十三;七七数之,剩二 ,置三十。并之,得二百三十三,以二百一十减之,即得。凡三三数之,剩一,则置七十 ;五五数之,剩一,则置二十一;七七数之,剩一,则置十五。一百六以上,以一百五 减之,即得。”

 

方法是分两个步骤:

     第一步,构造出了三个数, 其一,对三取余剩二,而对五和七取余无剩余;其二,对五取余剩三,对三和七取余无剩余;其三,对七取余剩二,对三五取余无剩余;

    把这三个数加到一起后,就得到了一个能满足题目的要求的数;

   第二步,把第一步的数对三五七的最小公倍数105取余,把满足条件的数最小化,从而完美的解决了问题。

 

三三数之,剩二,置一百四十:

      140如何来的? 140是5和7的公倍数,且140除以3余2;

五五数之,剩三,置六十三;

     63则是3和7的公倍数,且保证了63%5=3

七七数之,剩二 ,置三十

     30是3和5的公倍数,且30除以7余2

把这三个数加起来: 140 + 63 + 30 = 233

检验:

     233%3 = 2;  233%5=3; 233%7 = 2;

233对105取余, 得到最终的答案23

    233%105 = 23

三国魏晋的《景初历》、南北朝祖冲之的《大明历》甚至更早的历法书籍当中已经有了远比“物不知数”当中例举的数据更复杂的计算历法周期的规律的方法,《孙子算经》是对前人经验的总结归纳,后世在此基础上对同余定理也不断的完善和发展。

宋朝的秦九韶在《数书九章》进一步发展为根据普遍意义的“大衍求一术”

到了明朝程大位将其归纳为歌诀,并配以《韩信点兵》的故事便于记忆和推广:

       “三人同行七十稀,五树梅花二十一,七子团圆正半月,除百零五便得知。”

      70 是 5和7的公倍数当中对3取余剩1的数

      21是3和7的公倍数中对5取余剩1的数

      15是3和5的公倍数当中对7取余剩余1的数

 

《孙子算经-物不知数》的方法被称为孙子定理,是求解一次同余式组的方法,是"数论"中一个重要定理,被称为“中国余数定理”。

 

《算子算经》当中另外一个众所周知的题目是:“鸡兔同笼”也是同余数的问题:

       “今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

 

这些问题都成了如今一些编程初学者的基础题目了, 只不过很可惜啊, 都是变成了暴力穷举的典范

而他们更应该是: 最大公约数和最小公倍数的求解题目

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值