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

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

我是猫妹,一名爱上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只

穷举法

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

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

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

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

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

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

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

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

我是猫妹,咱们下次见!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AdaSparse: 自适应稀疏网络的多场景CTR预估建模

▐ 摘要 CTR(Click-through rate)预估一直是推荐/广告领域重要技术之一。近年来&#xff0c;通过统一模型来服务多个场景的预估建模已被证明是一种有效的手段。当前多场景预估技术面临的挑战主要来自两方面&#xff1a;1&#xff09;跨场景泛化能力&#xff1a;尤其对稀疏场景&…

vscode IDE 能用的上的扩展工具功能介绍

记录分享vscode扩展&#xff0c;包括提升开发效率。必备。主题美化。ChatGPT等。 参考 vscode-extensions [Best] 记录分享方式&#xff0c;整理自己用的扩展&#xff0c;还有一键备份和还原方法。 ⭐快速下载和使用扩展 后面会介绍很多vscode扩展.这裡有一个技巧&#xff0c;…

为什么二极管具有单向导通性

大家都知道二极管具有单向导通性&#xff0c;比如一个双极性的信号通过二极管后会变成一个单极性的信号。 为了弄清这个问题先来看一下二极管的构成。 在纯净的硅晶体中掺入五价元素&#xff0c;比如磷&#xff0c;就形成了N型半导体&#xff0c;掺入的五价元素多余的电子很容…

uboot移植Linux-SD驱动代码解析

一、uboot与linux驱动 1.1、uboot本身是裸机程序 (1)狭义的驱动概念是指&#xff1a;操作系统中用来具体操控硬件的代码叫驱动 广义的驱动概念是指&#xff1a;凡是操控硬件的代码都叫驱动 (2)裸机程序中是直接使用寄存器的物理地址来操控硬件的&#xff0c;操作系统中必须通…

实时聊天如何做,让客户眼前一亮(一)

网站上的实时聊天功能应该非常有用&#xff0c;因为它允许客户支持立即帮助用户。在线实时聊天可以快速轻松地访问客户服务部门&#xff0c;而它也代表着企业的门面。 让我们讨论一下如何利用SaleSmartly&#xff08;ss客服&#xff09;在网站中的实时聊天视图如何提供出色的实…

纯前端JS实现文件上传解析渲染页面

AI真的能代替前端吗&#xff1f; 回答&#xff1a;不会完全代替 能用吗&#xff1f;复制到项目中只会报错 爆红 ……他完全不能理解你需要什么JavaScript&#xff08;简称JS&#xff09;是一种轻量级的脚本语言&#xff0c;主要用于在Web页面上添加交互行为。它由三个不同的…

项目环境配置、不知晓问题自己搜索后得到的解答

目录 Anolis OS龙蜥操作系统 Kernel Selection 4.18.0(RHCK) Compatible with RHEL (kernel-4.18.0) 4.19.91(ANCK) Support Anolis OS verified platform (kernel-4.19.91) 这两个内核选择哪个比较好呢&#xff1f; 我的C盘有些满&#xff0c;我该如何删除一些我需要的东西…

家用洗地机哪个好用?家用洗地机分享

洗地机是一种代表现代化清洁的设备&#xff0c;它具有高效、环保、经济、智能等多种特点。洗地机可以为您提供先进的清洁技术和设备&#xff0c;为您的清洁工作提供有力的支持。洗地机可以适应不同场所和建筑物的需求&#xff0c;提高工作效率和卫生形象。因此&#xff0c;选择…

logstash介绍和使用-ELK文章2

官方 Logstash 是免费且开放的服务器端数据处理管道&#xff0c;能够从多个来源采集数据&#xff0c;转换数据&#xff0c;然后将数据发送到您最喜欢的“存储库”中。 下载和文档&#xff1a;https://www.elastic.co/cn/logstash/ docker部署&#xff1a;https://hub.docker.…

Linux中信号的基础知识

信号的概念 Linux操作系统中&#xff0c;信号是一种进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;机制&#xff0c;用于向其他进程发送通知或指示&#xff0c;通常是为了通知特定事件的发生&#xff0c;如程序终止、用户按下特定按键等。信号提供了一种…

在字节跳动做了6年软件测试,4月无情被辞,想给划水的兄弟提个醒

先简单交代一下背景吧&#xff0c;某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以“人员优化”的名义无情被裁员&#xff0c;之后跳槽到了有赞&#xff0c;一直从事软件测试的工作。之前没有实习经历&#xff0c;算是6年的工作经验吧。 这6年之间完成了一次…

浅谈springboot启动过程

1. 知识回顾 为了后文方便&#xff0c;我们先来回顾一下spring的一些核心概念。 spring最核心的功能无非是ioc容器&#xff0c;这个容器里管理着各种bean。ioc容器反映在java类上就是spring的核心类ApplicationContext。ApplicationContext有众多的子接口和子类&#xff0c;不…

文旅数字人出圈不断,文旅数字人宣传片制作赋能数字文旅新业态

在文旅产业发展中 数字人的应用越来越广泛 文旅借助数字人浪潮 把传统文化与科技相融合 以Z世代年轻群体所喜爱的方式 推动文旅数字化发展 文旅数字人应用场景——数字人文旅宣传片 可以让数字人作为文旅宣传片主角&#xff0c;串联当地代表性的历史文化地标、现代都市场景…

sensor的感光原理

文章内容来自网络&#xff0c;联系我可以删掉。 目录 CMOS sensor上有什么&#xff1f; 不同像素对应的图像质量&#xff1a; 像点感光原理&#xff1a; Bayer格式变换成RGB格式&#xff1a; CMOS sensor上有什么&#xff1f; CMOS sensor 通常由像敏单元阵列、行驱动器、…

第10章:数据处理增删改

一、插入数据 CREATE TABLE emp1 (id int(11) ,name varchar(15) ,hire_date date ,salary double(10,2) )1.添加一条数据 ①没有指明添加的字段&#xff0c;一定按照顺序添加 insert into emp1 values(1,wang,2000-4-4,5900)②指明添加的字段&#xff08;推荐&#xff09;…

【CSS3】CSS3 属性选择器 ( CSS3 简介 | 属性选择器 | 属性选择器权重 )

文章目录 一、CSS3 简介二、CSS3 属性选择器权重三、CSS3 属性选择器 一、CSS3 简介 CSS3 是在 CSS2 基础上进行扩展后的样式 ; 在 移动端 对 CSS3 的支持 要比 PC 端支持的更好 , 建议在移动端开发时 , 多使用 CSS3 ; PC 端老版本浏览器不支持 CSS3 , 尤其是 IE 9 及以下的版…

Qt5.9学习笔记-事件(五) 事件调试和排查

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的在读研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三…

【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】

目录 1.简介2.环境安装2.1安装torch相关库2.2 获取yolov8最新版本&#xff0c;并安装依赖 3. 如何使用模型用于各种CV任务3.1 目标检测任务实现检测图片代码检测视频代码 3.2 分割任务实现分割图片代码分割视频代码 3.3 追踪任务3.4 姿态检测任务姿态检测&#xff08;图片&…

数据结构之“树”——二叉树、红黑树、B树、B+树、B*树

这篇文章主要简单总结下二叉树、红黑树、B树、B树、B*树的基本结构和原理。 一、二叉树 二叉树就是度不超过2的树(每个结点最多有两个子结点)。 二叉树是有序树&#xff08;二叉排序树&#xff09;&#xff0c;若将其左右子树颠倒&#xff0c;则成为另一棵不同的二叉树。 二叉…

php+vue+mysql医院医护人员医生排班系统

本医护人员排班系统管理员&#xff0c;医护。管理员功能有个人中心&#xff0c;医院信息管理&#xff0c;医护信息管理&#xff0c;医护类型管理&#xff0c;排班信息管理&#xff0c;排班类型管理&#xff0c;科室信息管理&#xff0c;投诉信息管理。医护人员可以修改自己的个…