首页 > 编程语言 >python算法:五家共井

python算法:五家共井

时间:2024-05-16 11:23:01浏览次数:26  
标签:共井 python 井深 五家 range 倍数 265 print com

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1 2 3 4 # 指定 start和stop # print的参数 end=" " 用来使打印不换行 for num in range(3,9):     print(num, end=" ")

运行结果:

3 4 5 6 7 8 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/28/python-suan-fa-wu-jia-gong-jing/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,五家共井的题目与分析

1,题目

有五家共用一口井,
甲、乙、丙、丁、戊五家各有一条绳子汲水,
下面用文字表示每一家的绳子:
甲×2+乙=井深,
乙×3+丙=井深,
丙×4+丁=井深,
丁×5+戊=井深,
戊×6+甲=井深,
求甲、乙、丙、丁、戊各家绳子的长度和井深

2,分析

思路:
这种题目用的是五元一次方程组,

设甲、乙、丙、丁、戊五根绳子分别长a、b、c、d、e,井深h,
那么列出方程组:
2a + b = h
3b + c = h
4c + d = h
5d + e = h
6e + a = h

变形后:

b=h-2a
c=h-3b
d=h-4c
e=h-5d
a=h-6e

可知:
a=h-6(h-5d)
依次代入,最终得到:
721a = 265h
则:
h        721
–   =    –
a        265

设h = 721k



a = 265k
b = 191k
c = 148k
d = 129k
e = 76k

知道了比例之后,因为绳长和井深不可能为负,所以k > 0,
因为这里的数字只是成比例关系,所以这个题目就有多个解的,
在这里我们假定: 0 < k <6,把k的值代入即可

三,编写代码:

1 2 3 4 5 6 7 8 9 # 设i的取值范围:[1,5] for i in range(1, 6):     a = 265 * i    # 甲     b = 191 * i    # 乙     c = 148 * i    # 丙     d = 129 * i    # 丁     e = 76 * i     # 戊     h = 721 * i    # 井深     print(f"井深:{h},甲:{a},乙:{b},丙:{c},丁:{d},戊:{e}")

运行结果:

井深:721,甲:265,乙:191,丙:148,丁:129,戊:76
井深:1442,甲:530,乙:382,丙:296,丁:258,戊:152
井深:2163,甲:795,乙:573,丙:444,丁:387,戊:228
井深:2884,甲:1060,乙:764,丙:592,丁:516,戊:304
井深:3605,甲:1325,乙:955,丙:740,丁:645,戊:380

四,分析之二

如果解方程不需要花太多的步骤,在程序中用循环处理,是否也可以?
已知:
2a + b = h
3b + c = h
4c + d = h
5d + e = h
6e + a = h

可以得到:
a = b+c/2
b = c+d/3
c = d+e/4
d = e+a/5
不考虑小数的情况下,
可以得到:
c是2的倍数,
d是3的倍数,
e是4的倍数,
a是5的倍数

五,编写代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 函数,返回各家绳子的长度和井的深度 def fun():     e = 0     while True:         e += 4  # e是4的倍数         a = 0         while True:             a += 5  # a是5的倍数             d = e + a / 5     # 得到d             c = d + e / 4     # 得到c             if c % 2 != 0 or d % 3 != 0# c是2的倍数,d是3的倍数                 continue             b = c + d / 3      # 得到b             if a > b + c / 2# a在自增,当a大于b + c / 2要停下来                 break             if b + c / 2 == a:     # 得到a, 4个条件都匹配                 h = 2 * a + b      # 得到h,返回                 str = f"井深:{h},甲:{a},乙:{b},丙:{c},丁:{d},戊:{e}"                 return str print(fun())

运行结果:

井深:721.0,甲:265,乙:191.0,丙:148.0,丁:129.0,戊:76
 

标签:共井,python,井深,五家,range,倍数,265,print,com
From: https://www.cnblogs.com/architectforest/p/18195587

相关文章

  • python算法:青蛙跳台阶二
     一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3......
  • python算法:读书
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:公交车问题
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:借书方案
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:分糖果
    一,while循环:1,功能:重复执行同一段代码语法:while条件表达式:  #循环体当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,如果表达式返回的结果为假,则退出循环体2,流程图:3,打印从1到1012345#打印从1到1......
  • python算法:平分7筐鱼
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • 接口自动化测试框架【python+requests+pytest+excel+allure+jenkins】
    一.在整个框架中需要用到哪些东西?1.python环境安装https://www.python.org/downloads/windows/下载解压后直接安装,选择Addpythontopath2.JAVA环境配置安装包下载地址:https://www.oracle.com/java/technologies/downloads/环境变量设置参数如下:●变量名:JAVA_HOME●变......
  • python算法: 抓交通肇事犯
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • 推荐一款微信公众平台Python开发神器!
    1、引言在当今数字化时代,微信公众平台成为了企业和个人连接用户的重要渠道。为了高效地管理和与用户互动,开发者需要一个强大而灵活的工具。Weixin-Python正是这样一个为微信公众平台量身打造的Python库,它以其简洁的API和丰富的功能赢得了众多开发者的青睐。本文将深入探讨......
  • python函数参数中的**kwargs
    表示传递任意参数,必须放在形参的最后本质就是一个字典在函数内部可以继续进行处理,添加参数,例如:defexample_function(**kwargs):kwargs['db']=1print(kwargs)如果函数b中的形参是指定了名字的参数,并且你将字典以**a的方式传递给该函数,那么字典中的键必须与函......