《算经》中的百钱买百鸡问题,你会做吗?试下看看(39)

news2025/1/15 6:45:50

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

你知道我国历史上有个王朝叫北魏吗?

北魏(386年—534年),南北朝时期北朝的第一王朝。

也称“后魏”“拓跋魏”“元魏”,鲜卑族拓跋氏所建,传12帝(列入正史帝纪者)

你知道北魏王朝有个著名的数学家叫张丘建吗?

他从小聪明好学,酷爱算术。

一生从事数学研究,造诣很深。

“百鸡问题”是中古时期,关于不定方程正整数解的典型问题,邱建对此有精湛和独到的见解。

著有《张邱建算经》3卷。后世学者北周甄鸾、唐李淳风相继为该书作了注释。刘孝孙为算经撰了细草。

算经的体例为问答式,条理精密,文词古雅,是中国古代数学史上的杰作,也是世界数学资料库中的一份遗产。

你知道张丘建的代表作《算经》吗?

你知道《算经》中有个著名的数学问题叫百鸡百钱吗?

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱。用100文钱,买100只鸡。问公鸡、母鸡、小鸡各多少只?

方程解法

如果上了初中,应该会学到方程,这个问题可以用方法来求解。

未知数称为元,未知数的幂称为次。

假设公鸡、母鸡、小鸡分别为x、y、z只。

由题可得以下方程:

① x+y+z=100 (鸡的总数量为100只)

② 5x+3y+1/3z=100 (鸡的总价格为100文)

根据以上方程,可以得到以下解:

7x+4y=100

本质上是二元一次方程的整数解问题。

x大于等于0,小于等于20

y大于等于0,小于等于33

x=(100-4y)/7

y=(100-7x)/4

化简得x<=14 y<=25,然后x依次0~14逐一取值计算进行验证判断即可。

二元一次方程的整数解属于初中数学问题:

答案是3组

Python遍历解法

在Python编程中,通过穷举法的方式找出所有解法。

  1. 枚举公鸡的数量x=0~20,步长为1。

  2. 在枚举公鸡数量x的前提下,枚举母鸡的数量y=0~33,步长为1。

  3. 根据x和y的值,计算出小鸡的数量z=100-x-y。

  4. 判断当前三种鸡的数量是否符合条件,即5x+3y+z/3=100,如果符合,则输出当前解法。

for x in range(0, 21):    for y in range(0, 34):        z = 100 - x - y        if 5*x + 3*y + z/3 == 100:            print("公鸡:%d只,母鸡:%d只,小鸡:%d只" % (x, y, z))

公鸡:0只,母鸡:25只,小鸡:75只公鸡:4只,母鸡:18只,小鸡:78只公鸡:8只,母鸡:11只,小鸡:81只公鸡:12只,母鸡:4只,小鸡:84只

程序用了两层循环,其实还可以用一层循环,此时理解起来稍微麻烦些,但是运行效率会更高效一些。

​​​​​​​

for x in range(0, 21):    y = 25 - 7*x/4    z = 75 + 3*x/4    if x%4==0 and y >=0:        print("公鸡:%d只,母鸡:%d只,小鸡:%d只" % (x, y, z))

​​​​​​​

公鸡:0只,母鸡:25只,小鸡:75只公鸡:4只,母鸡:18只,小鸡:78只公鸡:8只,母鸡:11只,小鸡:81只公鸡:12只,母鸡:4只,小鸡:84只

穷举法

所谓穷举法,从可能得解的集合中一一枚举各元素,用题目给定的检验条件判定哪些是无用的,哪些是有用的。

由于穷举法需要遍历所有元素,因此它的时间性能往往是最低的,指数级的时间开销往往都是采用穷举带来的,但是它依旧是很重要的算法设计思想。理论上,穷举法可以解决许多计算领域的问题(只要机器性能足够或者时间开销可承受)。

百钱买百鸡问题是一道经典的数学问题,通过方程解法和编程解法,可以找出所有符合条件的解法。

方程解法适用于小规模的问题,对于大规模的问题,可以使用编程解法进行计算。

编程解法使用穷举的方式,可以找出所有解法,但计算量较大,需要耗费一定时间和计算资源。

对于现在的计算机来说,这都不是事儿!

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HashMap 简述

文章目录 前言一、HashMap的数据结构二、HashMap存储数据的大致过程1 哈希值2 什么是哈希冲突?3 为何有两种数据结构? 三、HashMap常用知识总结 前言 HashMap 是开发中常用的一种数据结构,通常用做返回值,计算比对等,会经常用到; 一、HashMap的数据结构 jdk8之后,数据结构是…

时至今日,Pascal系列Turbo Pascal 5.0依旧是我心中永远的神

从DOS时代到Windows时代&#xff0c;从桌面应用到Web应用&#xff0c;每一个时代都有它特定的编程工具 在我看来&#xff0c;DOS时代的编程语言&#xff0c;Pascal必占一席之地。 尤其是Turbo Pascal系列的最后一个版本——Turbo Pascal 5.0&#xff0c;更是我心目中永不褪色的…

nginx企业级高性能配置优化

一、基础配置优化 1、CPU亲和性优化 1.1、推荐直接将配置项设置成auto (worker_cpu_affinity)&#xff0c;即采用了Nginx推荐的CPU绑核策略方式。 1.2、手动绑定&#xff0c;将worker线程数量与CPU核心数一一绑定方式设置&#xff0c;设置成auto Nginx会自动识别并按照推荐策略…

New Bing 全面开放?我看未必

前段时间大家应该都被ChatGPT刷屏了&#xff0c;其实就回答来说New Bing 才是最厉害的&#xff0c;因为它底层使用了ChatGPT 并且可以支持联网查询数据&#xff0c;回答中还能支持看到出处&#xff0c;方便确认其真实性。 New Bing 是微软基于 OpenAI ChatGPT 技术开发的新一代…

vue3项目搭建

一、安装 vue3.0 脚手架 &#xff08;1&#xff09;node安装&#xff08;前端开发环境&#xff09; 打开node官网:https://nodejs.org/zh-cn/ 下载node并安装&#xff08;安装vue3建议node在10.0版本以上&#xff09;。 输入node -v可显示node版本 &#xff08;2&#xff09;…

使用思维链(Chain-of-thoughts)提示在大型语言模型中引出推理

语言模型(LM)在NLP领域的发展速度非常快&#xff0c;特别是在大型语言模型(LLM)方面&#xff1a;当语言模型具有大量参数或权重/系数时&#xff0c;它们被称为“大型”。这些“大型”语言模型拥有处理和理解大量自然语言数据的能力。 LLM被用于一系列自然语言任务&#xff0c;…

【Java EE】-Servlet(三) MessageWall

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 寂寞会发慌&#xff0c;孤独是饱满的。——史铁生《命若琴弦》 主要内容&#xff1a;前后端交互接口协商&#xff0c;约定好&#xff0c;使用什么数据格式传输&…

变现 起航篇! 手把手交你用chatgpt快速生成视频!

Chatgpt 很多同学都用的非常熟练了&#xff0c;但是都停留在文字阶段&#xff0c;有没有更好玩的用法&#xff0c;可以深度的利用chatgpt做一些事情呢&#xff1f; 今天菜哥就找一个方法可以快速利用chatgpt制作视频&#xff0c;整个过程大概3分钟&#xff0c;非常有趣&#xf…

浪涌保护器的工作类型及其应用

所有电路系统中的电气设备都需要浪涌保护器的保护支持。这主要取决于器件的内部电路如何能够处理电压波动。如果器件出现输入电压波动&#xff0c;则会导致器件损坏&#xff0c;因为电源电压的波动可能对器件有害。在本文中&#xff0c;我们将了解什么是浪涌保护器&#xff0c;…

【源码+个人总结】Spring 的 三级缓存 解决 循环依赖

Spring可以通过以下方法来避免循环依赖&#xff1a; 构造函数注入&#xff1a;使用构造函数注入来注入依赖项&#xff0c;这是一种比较安全的方式&#xff0c;因为在对象创建时就会注入依赖项&#xff0c;可以避免循环依赖。 Setter方法注入&#xff1a;使用Setter方法注入依赖…

云开发谁是卧底线下小游戏发牌助手微信小程序源码

源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/87614365 云开发谁是卧底线下小游戏源码&#xff0c;发牌助手微信小程序源码。 “谁是卧底OL”是一个非常有趣&#xff0c;风靡全国的比拼语言表述能力、知识面与想象力的游戏。 谁是卧底OL是一款由开发…

Notepad++下载安装NppFTP插件

文章目录 一、Notepad内下载安装NppFTP插件1.打开Notepad——插件——插件管理2.找到NppFTP插件——点击安装3.安装完成 二、直接下载安装NppFTP插件1.网盘下载2.将下载好的NppFTP插件放入到Notepad\plugins的插件目录下3.重启Notepad 三、Notepad下载总结 一、Notepad内下载安…

【刷题】142. 环形链表 II

142. 环形链表 II 一、题目描述二、示例三、实现3.1 方法13.2 方法2 142. 环形链表 II 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 nex…

前端学习 - 淼哥学Vue

如何判断数据是否受Vue管理&#xff0c;数据&#xff08;对象&#xff0c;数组&#xff0c;字符串等&#xff09;能否响应式更新&#xff1f; 即查看数据是否有对应get/set方法&#xff0c;数组没有对应get/set方法&#xff0c;故操作数组要通过其封装好的变更方法 变更方法 …

js高级知识汇总一

目录 1.怎么理解闭包&#xff1f; 2.闭包的作用&#xff1f; 3.闭包可能引起的问题&#xff1f; 4.变量提升 5.函数动态参数 6.剩余参数 ...&#xff08;实际开发中提倡使用&#xff09; 7.展开运算符 8.箭头函数 9.解构赋值&#xff08;数组、对象&#xff09; 10 创…

一文总结动态规划

动态规划 一、背包问题1 问题定义2 问题分类3 解题模板01背包最值问题剩余背包问题 4 例题分析LeetCode1049.最后一块石头的重量II 二、区间动态规划1 解题模板2 例题分析牛客.石子合并 总结与分析 一、背包问题 1 问题定义 如何确定一个题目是否可以用背包问题解决 背包问题…

给儿童使用护眼台灯怎么样选择更好?专家建议孩子买台灯

随着娃越长越大&#xff0c;虽然还在读幼儿园&#xff0c;但平时免不了要写写画画&#xff0c;之前一直在这个桌子上&#xff0c;台灯是一个赠送的LED货色&#xff0c;那个频闪啊&#xff0c;于是趁着当地商场活动先入了张学习桌椅&#xff0c;至于台灯嘛当然要选个好的了&…

21财经专访徐亚波博士:AI恒纪元时代,数说故事踏浪新征途

21世纪经济报道【创业投资】栏目&#xff0c;一直致力于寻找中国最有生命力和创造力的快速成长公司&#xff0c;探秘其背后的新兴资本推动力。为此&#xff0c;数说故事创始人兼CEO徐亚波博士接受了21世纪经济报道的专访。 近年来&#xff0c;大数据产业已经成为推动数字经济发…

【C语言】都玩过三子棋游戏把,但你知道怎么用C语言实现三子棋游戏吗?让我来手把手教你。

三子棋游戏 1.前言2.功能分析2.1主函数设计及菜单设计2.2打印棋盘与棋盘初始化2.3玩家下棋2.4电脑下棋2.5判断输赢 3.game.h头文件展示4.text.c源文件文件展示5.game.c源文件文件展示 所属专栏&#xff1a;C语言 博主首页&#xff1a;初阳785 代码托管&#xff1a;chuyang785 感…

Android 开发中高阶函数的 10 个实例

Android 开发中高阶函数的 10 个实例 Kotlin 是一种现代编程语言&#xff0c;由于其表现力、简洁性和多功能性而变得越来越流行。它的关键特性之一是支持高阶函数&#xff0c;这使您可以编写更简洁、更灵活的代码。高阶函数是一种将一个或多个函数作为参数或返回一个函数作为结…