尤明庆的博客分享 http://blog.sciencenet.cn/u/youmingqing 何苦来哉?心不忍耳!

博文

“百钱百鸡”求解与思考方法变迁 精选

已有 15208 次阅读 2014-10-4 07:29 |个人分类:观点建议|系统分类:科研笔记| 思考, 计算机, 百钱百鸡

利用对数和反对数进行大数的乘除法运算,已经没有必要。计算器使《数学用表》成为历史陈迹;而计算机更进一步改变了人们的思考方法。谨以“鸡公五钱,鸡母三钱,鸡子钱三。百钱百鸡,各鸡几何”求解为例说明如下。

1 算术是分析和试算的方法

  “大和尚一人吃两个馍,小和尚三人吃一个馍。一百个和尚吃一百个馍,大小和尚各多少”,是著名的算术题。50个大和尚吃100个馍,缺50个和尚数。减少1个大和尚,可增加6个小和尚,净增5人;将50 ÷ 510个大和尚换成60个小和尚,即实现百个和尚吃百个馍。

  “百钱百鸡”问题可同样求解。100钱买20只鸡公,鸡数缺80只。 1只鸡公可换15只鸡子,或 1只鸡母 6只鸡子;增加的鸡数都不是80的约数,不能求解。2只鸡公可换(1) 30只鸡子,(2) 1只鸡母21只鸡子,(3) 2只鸡母12只鸡子。换法(2) 增加鸡数20只,恰好是80的约数;将(80 ÷ 20)×28 只鸡公换成 4只鸡母和84只鸡子,即可实现百钱百鸡。

  若认识到鸡母价格居中,若干鸡母可等量等价地换取鸡公、鸡子,可以求出问题的其它解。通过试算,7 个鸡母与4个鸡公、3个鸡子等价,因而有:

      鸡公      12     8     4      0

      鸡母      4     11    18     25

      鸡子    84     81    78     75

  显然,算术求解不仅需要分析和试算,而且需要洞察力或技巧。

2 代数是通用和确定的方法

  代数求解方法是将所求未知数用字母表示,把问题提供的条转换成算式,由通用方法确定问题的解。求解过程不具备明确的物理含义。若设鸡公 X只,鸡母Y只,鸡子Z只,则有

        XYZ100 5X3YZ/3100

这是不定方程组,所以其解是

        Y257X/4 Z753X/4

因鸡数为非负整数,所以有

               X4KY257KZ753K

式中  K0, 1, 2, 3

  代数求解的关键是理解题意,具体计算没有难度。

3 计算机是搜索和验证的方法

  计算机求解“百钱百鸡”就是将可能情形逐一列出验证。Basic 程序是:

10 FOR I=0 TO 100

20  FOR J=0 TO 100

30   FOR K=0 TO 100

40   IF I+J+K =100 AND 5*I+3*J+K/3=100 THEN PRINT I, J, K

50   NEXT KJI

60 END

  这里没有对问题的任何分析、推理和试算,仅在可能范围内根据题意进行验证:鸡公、鸡母、鸡子数在0100 全组合,判断鸡数和钱数是否为100。最后在1013种情形内确定“百钱百鸡”4组解。计算机的高速运算能力使“大海捞针”成为现实,成为最佳方案。

4 讨论

  计算机改善了数值计算的速度和精度,进而改变了思考过程。若以一元四次方程的求根公式求解具体方程,手工计算极为困难;利用计算机求解,将求根公式程序化也极端繁琐,而直接利用两分法则程序简洁。就解决实际问题而言,研究高次方程的求根公式没有价值。

  利用神经元、BP网络等纯数值方法,具备太阳、地球和月亮若干时间序列的位置,即可预测其后的位置,而不需了解相关物理定律;即从第谷的观测结果,不必经过开普勒和牛顿的研究,就可以知道行星运行情况。当然,随着时间推移,预测误差逐步增大,乃至完全失真。

  使学生知其然,知其所以然,曾经是我们的教学宗旨,因学科向广度和深度的发展现已难以做到;而计算机可能使知其然,知其所以然不再成为科学研究的唯一目标。由此产生的影响,不能不令人深思。 

1:拙稿原发表于《煤炭高等教育》1999年专辑,文字已略作删减。

2200110为研究生授课时说,以Basic语言进行“百钱百鸡”的1013全选择,IBM-PC 286几乎不能完成,386约需10分钟,而CPU 333MHz的组装机约需1分种。课后硕士生YSQTC 3.0语言编制程序:

# include<iostream.h>

void main( )

{ int i, j, k;

for (i=0; i<=100; i++)

  for (j=0; j<=100; j++)

for (k=0; k<=100; k++)

if (i+j+k= =100 && 5*i+3*j+k/3 = =100)

cout<<’ (‘<<i<<’, ’<<j<<’, ’<<k<<’)’<<endl;

}

CPU 450MHz计算机上运算1秒钟得到7组解。

      鸡公      0     3      4     7      8     11   12

      鸡母         25     20    18    13    11     6       4

      鸡子         75     77    78    80    81    83     84

有三组解鸡子数不是3的倍数。经讨论发现第7行的3应改为3.——Basic语言和C语言取整约定不同。对计算机给出的结果需进行核查

3:计算机储存载体也不断变化。2012红色优盘8G2001年灰色优盘26 M1997年元月3吋盘 1.44 M1996 年元月5吋盘 1.6 M1988年时5吋盘只有160 K 

332年前学习719 算法语言(类似于Algol 60)。本科阶段曾三次使用计算机,程序是纸带打孔后输入(图片来自网上)。一个字符用两排孔即两个8进制数表示。当年能从纸带直接读出字符而检查程序;有错则以小图之工具进行局部修补。 

Fortran 语言的计算条件以80列的卡片输入。又,过去学习的许多数值方法和技巧已因计算机速度的提高而失效。 

4记分册(成绩单)是毕业时学校发给的,扫描4在下列博文给出以说明课程安排。博文还给出当年所用部分讲义的照片。

大学该以教学为主http://blog.sciencenet.cn/blog-275648-831195.html 



https://blog.sciencenet.cn/blog-275648-832917.html

上一篇:学位论文“致谢”中的人称问题
下一篇:借都江堰说些没有公式的力学
收藏 IP: 222.88.196.*| 热度|

17 冯大诚 李颖业 马永亮 王小平 宋泽阳 李健 张忆文 王林平 庄世宇 朱晓刚 张文增 卢萌盟 王福昌 shenlu Veteran11 xiaoniu123 dulizhi95

该博文允许注册用户评论 请点击登录 评论 (49 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-23 06:15

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部