当前位置: 首页 > news >正文

五家共井(第1届第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。

源码示例

 

结果展示

小结

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

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

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

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

相关文章:

  • 为了搞定政策控制 企业需要多少SDN控制器?
  • hibernate调优
  • Ubuntu中update-grub2与update-grub的区别
  • 把LTE用于物联网 高通推出全新调制解调器解决方案
  • Vue.js实例练习
  • 甲骨文云数据中心正式落地 中国云服务商面临的威胁是什么?
  • Android入门(十九)WebView
  • 希尔排序及希尔排序java代码
  • 夯实企业IT服务根基 走云服务必经之路
  • 爱奇艺、优酷、腾讯视频竞品分析报告2016(一)
  • 《中国人工智能学会通讯》——8.10 特征学习
  • 值得学习的粒子思路
  • nginx反向代理
  • Map or switch
  • 文本编辑器Sublime Text3
  • [数据结构]链表的实现在PHP中
  • 【翻译】babel对TC39装饰器草案的实现
  • android 一些 utils
  • DOM的那些事
  • HTTP--网络协议分层,http历史(二)
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Java面向对象及其三大特征
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 力扣(LeetCode)21
  • 力扣(LeetCode)357
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端之React实战:创建跨平台的项目架构
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 学习笔记:对象,原型和继承(1)
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #### go map 底层结构 ####
  • (27)4.8 习题课
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C)一些题4
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (二)hibernate配置管理
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • **CI中自动类加载的用法总结
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .Net 代码性能 - (1)
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • @Autowired和@Resource的区别
  • @Responsebody与@RequestBody
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [<死锁专题>]
  • [acm算法学习] 后缀数组SA
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C++]类和对象【下】