首页 > 编程语言 >python算法:马克思的数学题

python算法:马克思的数学题

时间:2024-05-15 10:41:29浏览次数:28  
标签:10 20 小孩 python 30 range 算法 数学题 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/20/python-suan-fa-ma-ke-si-de-shu-xue-ti/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: [email protected]

二,题目与分析:

1,题目:

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,他们在同一家饭馆吃饭,总共花了50先令。
已知每个男人吃饭需要花3先令,每个女人吃饭需要花2先令,每个小孩吃饭需要花1先令,请编程求出男人、女人和小孩各有几人?

2,分析:

思路:
设变量x、y和z分别代表男人、女人和小孩,则由题目的要求,可得到右侧的方程组。
方程①表示男人、女人和小孩加起来总共有30个人;方程②表示30个人吃饭总共花了50先令。

根据上述方程式可以得到:
2x+y=20,
则: y = 20 – 2x
可以得到x取值范围是[0,10]
可以得到y取值范围是[0,20]
然后可以遍历x的值,从而得到y,z的值,再根据方程式判断是否匹配

三,编写代码:

1, for循环一: 两遍循环

1 2 3 4 5 6 7 # 变量x、y和z分别代表男人、女人和小孩 for x in range(0, 10 + 1):      # x 取值范围:0到10     for y in range(0, 20+1):      # y 取值范围: 0 到 20         z = 30 - x - y    # 根据方程①,当x、y一定时,可确定z值         # 检验,是否匹配方程②,如匹配则得到一组解         if 3 * x + 2 * y + z == 50:             print(f"男:{x} 女:{y} 孩:{z}")

运行结果:

男:0 女:20 孩:10
男:1 女:18 孩:11
男:2 女:16 孩:12
男:3 女:14 孩:13
男:4 女:12 孩:14
男:5 女:10 孩:15
男:6 女:8 孩:16
男:7 女:6 孩:17
男:8 女:4 孩:18
男:9 女:2 孩:19
男:10 女:0 孩:20

2,for循环二:优化后一遍循环

1 2 3 4 5 6 7 # 变量x、y和z分别代表男人、女人和小孩 for x in range(0, 10 + 1):      # x 取值范围:0到10     y = 20 - 2 * x    # 当x一定时,可确定y值     z = 30 - x - y    # 根据方程①,当x、y一定时,可确定z值     # 检验,是否匹配方程②,如匹配则得到一组解     if 3 * x + 2 * y + z == 50:         print(f"男:{x} 女:{y} 孩:{z}")

运行结果:

男:0 女:20 孩:10
男:1 女:18 孩:11
男:2 女:16 孩:12
男:3 女:14 孩:13
男:4 女:12 孩:14
男:5 女:10 孩:15
男:6 女:8 孩:16
男:7 女:6 孩:17
男:8 女:4 孩:18
男:9 女:2 孩:19
男:10 女:0 孩:20
 

标签:10,20,小孩,python,30,range,算法,数学题,com
From: https://www.cnblogs.com/architectforest/p/18193393

相关文章

  • python算法:爱因斯坦阶梯
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:百钱买百鸡
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:鸡兔同笼
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法: 棋盘上的麦粒(舍罕王赏麦)
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:杨辉三角
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:n皇后
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • 分类算法中精确率、召回率、F1 Score的理解
    在机器学习和深度学习中,将分类任务的预测结果分为以下四种,被称作混淆矩阵:TruePositive(TP):预测出的为正例,标签值也为正例,预测正确FalseNegative(FN):预测出的为负例,标签值为正例,预测错误FalsePositive(FP):预测出的为正例,标签值为负例,预测错误TrueNegative(TN):预测出的为负......
  • python算法:角谷猜想
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:水仙花数
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python: 递归函数:阶乘
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......