The Fun Of Algorithm - Day4 - 百钱百鸡问题
问题描述
中国古代数学家张丘建在他的《算经》中提出了一个著名的‘百钱百鸡问题’:一只公鸡值5钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡,母鸡,小鸡各多少只?
问题分析
公鸡 cock 母鸡 hen 小鸡 chicken
问题化解成不定方程组:
cock+hen+chicken=100
5 X cock+3 X hen +chicken/3 = 100
算法设计
利用穷举循环的方法来解决, 根据控制条件**if (5 * cock+3 * hen + chicken / 3.0 == 100) and (cock+hen+chicken==100)**来限制输出。此时穷举尝试次数为2134101=72114次
另外performance版本,可以将小鸡数量固定为100-cock-hen,所以穷举次数变为21*34=714,可以大大节省时间。
Code
Basic version:
# !/user/bin/python3
# -*- coding: utf-8 -*-
# @author: HHVic
# @desc: 牛顿迭代法求方程根import time# add timer to calculate the performance
# Basic performance
###############################################################start = time.time()if __name__=='__main__':# cock表示公鸡数量,hen表示母鸡数量,chicken表示小鸡数量,总共100只# 外层循环控制共计数量取值范围为0-20cock=0while cock<=20:#内层循环控制母鸡数量取值范围为0-33hen=0while hen<=33:#控制小鸡数量取值范围为0-100chicken=0while chicken<=100:#条件控制if (5*cock+3*hen+chicken/3.0==100) and (cock+hen+chicken==100):print('cock=%2d,hen=%2d,chicken=%2d\n' %(cock,hen,chicken))chicken+=1hen+=1cock+=1end = time.time()
print("The Basic Runtime is {0}".format((end-start)))
结果:
cock= 0,hen=25,chicken=75cock= 4,hen=18,chicken=78cock= 8,hen=11,chicken=81cock=12,hen= 4,chicken=84The Basic Runtime is 0.0230405330657959
Performance version:
# !/user/bin/python3
# -*- coding: utf-8 -*-
# @author: HHVic
# @desc: 牛顿迭代法求方程根import time# add timer to calculate the performance
# Basic performance
###############################################################start = time.time()if __name__=='__main__':# cock表示公鸡数量,hen表示母鸡数量,chicken表示小鸡数量,总共100只# 外层循环控制共计数量取值范围为0-20cock=0while cock<=20:#内层循环控制母鸡数量取值范围为0-33hen=0while hen<=33:#控制小鸡数量取值范围为0-100chicken=100-cock-hen#条件控制if 5*cock+3*hen+chicken/3.0==100:print('cock=%2d,hen=%2d,chicken=%2d\n' %(cock,hen,chicken))hen+=1cock+=1end = time.time()
print("The Basic Runtime is {0}".format((end-start)))
结果
cock= 0,hen=25,chicken=75cock= 4,hen=18,chicken=78cock= 8,hen=11,chicken=81cock=12,hen= 4,chicken=84The Basic Runtime is 0.001001119613647461
The Fun Of Algorithm - Day4 - 百钱百鸡问题相关推荐
- python百鸡百钱递归_百钱百鸡,一百块钱买一百只鸡的递归算法 javascript实现
// 求百钱百鸡 function buy(ind, indexs, start) { start++; if (start > 2) { return; } if (!indexs[start ...
- java - 百钱百鸡小算法
传送门: 袁咩咩的小小博客 百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的<算经>,这是古代著名数学家张丘建首次提出的.百钱百鸡问题原文如下: 鸡翁一,值钱五,鸡母一,值钱三,鸡 ...
- #Java编程题-百钱百鸡
问题: 百钱百鸡问题.用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只). 自己的实现,没有什么数据结构,算法,求大神指点!! packa ...
- 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc
多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...
- Python基础-“百钱百鸡”入门逻辑题(刚开始的建议藏起来)
一:前言 最近这段时间辣条哥发现学Python的人是越来越多,但是适不适合学Python又有几个人知道呢?说到底编程其实很多时候需要的是较强的思维逻辑能力,如果基础的思维逻辑能力不行的话那辣条就得好好 ...
- 蓝桥杯1427: -买不到的数目(百钱百鸡问题变体)
百钱白鸡问题: 公鸡5钱一只,母鸡3钱一只,小鸡1钱3只.100钱买100只鸡,问公鸡,母鸡,小鸡各几只? 问题实质是求不定方程的整数解(数论): a+b+c=100① 5a+3b+c/3=100② ...
- python算法1.5百钱百鸡
1.问题描述 中国古代数学家张丘建在他的<算经>中提出了一个著名的"百钱百鸡问题":一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡.母鸡. ...
- 百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况
百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况 class TestDemo { public static void main(String[] args ...
- 算法思想(枚举)——百钱百鸡+生理周期+完美立方+熄灯问题+讨厌的青蛙
枚举的思想其实时日常生活中提取的一种智慧 ^------^ 枚举的思想在生活中有着非常广泛的应用 在对事物进行归纳推理时,会逐一考察某个事物的所有可能的情况,并且逐一进行检验,这就是枚举 ...
最新文章
- Nginx源码分析链接
- 杰思安全获数千万元A+轮投资,绿盟科技领投,德联资本跟投
- Matlab化简符号表达式
- SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用
- Zen Coding 系列教程一:入门
- 部分植物基因组数据库汇总
- Java proxy 子类代理
- 有人上传你的脸?Facebook新功能立刻就会提醒你
- iPad协议 一键转发 群发消息 获取群二维码 清理僵尸粉V:viplac
- RequestDispatcher请求转发方法
- 利用ACC控制酷狗音乐
- Android 接入穿山甲SDK之Banner广告
- MEM/MBA 复试准备(01)复试流程与内容
- 抖音视频如何发到快手?短视频如何一键发布?
- 设计分享|基于单片机的矩阵电子琴(汇编)
- 微信小程序设置背景图片
- cocos2d-x Tile Map 教程(一)
- ARC 101 E - Ribbons on Tree
- 疫情严峻,为什么VR全景能逆生长?
- Refused to display ‘https://xxx.com.cn‘ in a frame because it set ‘X-Frame-Options‘ to ‘sameorigin‘
热门文章
- 围绕禅道介绍公司流程
- android 流畅动画svg,android svg动画
- 购买的Microsoft Office不小心卸载后重新安装方法
- 一篇关于大黄蜂的鸡汤文的杂想
- 抓住那头牛(BFS广搜)
- sqlite设密工具如何使用(本人资源)
- 16g电脑内存有什么好处_电脑内存8G和16G有什么区别?教你区别电脑内存8G和16G...
- 前端自学Vue笔记干货(第一版,持续更新中~~~)
- mysql截取前几个字符串_mysql中截取指定字符前后的字符串
- “2020年嵌入式软件秋招经验和对嵌入式软件未来的一点思考”