博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五家共井(第1届第3题)
阅读量:4920 次
发布时间:2019-06-11

本文共 977 字,大约阅读时间需要 3 分钟。

题目要求

       问题描述

       古代数学巨著《九章算数》中有这么一道题叫“五家共井,甲二绠(汲水用的井绳)不足,如(接上)乙一绠;乙三绠不足,如丙一绠;丙四绠不足,如丁一绠;丁五绠不足,如戊一绠;戊六绠不足,如甲一绠,皆及。

       翻译成白话意思就是:五家人共用一口井,甲家的绳子用两条不够,还要再用乙家的绳子一条才能打到井水;乙家的绳子用三条不够,还要再用丙家的绳子一条才能打到井水;丙家的绳子用四条不够,还要再用丁家的绳子一条才能打到井水;丁家的绳子用五条不够,还要再用戊家的绳子一条才能打到井水;戊家的绳子用六条不够,还要再用甲家的绳子一条才能打到井水。

       最后问:井有多深?每家的绳子各有多长?

       样例输入:无

       样例输出:各家绳长以及井深。

解决方案

       翻译成白话后,此题秒懂。

       设甲乙丙丁戊各家绳长分别为a,b,c,d,e,井深为h,则:

2a + b = h   ①

3b + c = h   ②

4c + d = h   ③

5d + e = h   ④

6e + a = h   ⑤

       观察此方程组,5个等式,6个未知数,那么如果方程一定有多组解,即解不唯一。

       整理上述方程组可得:

a=(265/721)h

b=(191/721)h

c=(148/721)h

d=(129/721)h

e=(76/721)h

       以此为切入点,我们这里假设绳长、井深均为正整数且井深不会超过一万米,且那么井深可能的最小取值为721,此时a、b、c、d、e大小分别为265、191、148、129、76。

源码示例

 

结果展示

小结

       这个题看似简单,实际也很简单,稍加换算便可得出需要的结果,但是如果需求变了呢?换成上百个人错综复杂的关系,再去手动解是不是得累死?如果用循环死磕,那么电脑会累死。如果先化简一部分再交给电脑处理,又不知道化简到什么地步让电脑处理最合适...

       有没有一种通用的解法来解这种题?换句话说用没有通用的算法来解多元一次方程组?有的,利用矩阵!

       线性代数里学过用矩阵的初等变换解多元一次方程组(高斯消元法),所以只需要编一些针对矩阵初等变换的函数,以后遇到这种题就可以直接输入系数求解了。

       这个算法好不好编?其实也不难,无非就是循环加判断,有时间不妨一试!

转载于:https://www.cnblogs.com/kangjianwei101/p/5334672.html

你可能感兴趣的文章
mysql 链接报 Can't connect to MySQL server on 'localhost' (10061)
查看>>
hdu 4288 Coder(单点操作,查询)
查看>>
HDU 4760 Good FireWall 完好Trie题解
查看>>
HDU 2037 今年暑假不AC (贪心)
查看>>
ARM架构和编程-4
查看>>
大北农路:翻转,花钱免灾
查看>>
问题:DataGrid该行并不总是很清楚验证错误(删除),解决方案,如下面
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
C语言默认參数值的实现
查看>>
docker 技术
查看>>
javascript挑战编程技能-第二题:计算字符数
查看>>
osgEarth编译
查看>>
win10与linux双系统切换时间不一致的调整
查看>>
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)...
查看>>
Enum Binding ItemsSource In WPF
查看>>
Javaweb 实现一个简单留言板
查看>>
UIP协议栈
查看>>
ubuntu设置默认终端
查看>>
洛谷P2731 骑马修栅栏 Riding the Fences
查看>>
python request 留位置0
查看>>