I00024 出钱买羽
《九章算术》属于算经十书中的一部,是中国古典数学专著。这些经典数学专著中,有许多众所周知的问题。现在是计算机无所不在的时代,那些问题与其用数学方法来解,不如用计算机程序来解。这个时代是计算解决问题的时代。
《九章算术》卷第二 粟米的四十五题和四十六题如下:
〔四五〕今有出钱六百二十,买羽二千一百翭。欲其贵贱率之,问各几何?答曰:其一千一百四十翭,三翭一钱。其九百六十翭,四翭一钱。
〔四六〕今有出钱九百八十,买矢簳五千八百二十枚。欲其贵贱率之,问各几何?答曰:其三百枚,五枚一钱。其五千五百二十枚,六枚一钱。
仔细阅读可以知道,这两个问题几乎是同一类型的,可以用同一个程序来解。
这两个问题,已知的是钱多少,买了多少东西。所买的东西分贵和贱两种,需要求的是贵和贱的东西各买了多少,其价格各为多少。给2个数,需要求4个数。另外一点,需要假设古代的钱是比较值钱的,1钱可以买多个物品。再一点是,经过试算,钱如果太值钱则可行解就太多了,于是假定1钱最多买10个物品。
穷举法在这个问题中是非常适用的。贵的物品所用钱数从1钱(循环变量i)开始试算,那么贱的物品所用钱数=所有钱数-贵的物品钱数。贵的物品价格从1开始试到10(循环变量j),贱的物品价格从j+1开始试到10(循环变量k),满足j<k。
程序如下:
/** 今有出钱六百二十,买羽二千一百翭。欲其贵贱率之,问各几何?答曰:其一千一百四十翭,三翭一钱。其九百六十翭,四翭一钱。** 今有出钱九百八十,买矢簳五千八百二十枚。欲其贵贱率之,问各几何?答曰:其三百枚,五枚一钱。其五千五百二十枚,六枚一钱。** 这两个问题出自《九章算术》卷第二粟米的四十五题和四十六题。*/#include <stdio.h>#define MAX_PRICE 10int main(void)
{int coin, goods, e_coin, c_coin;int i, j, k;while(scanf("%d%d", &coin, &goods) != EOF)for(i=1; i<= coin; i++) {e_coin = i;c_coin = coin - e_coin;for(j=1; j<=MAX_PRICE; j++) {for(k=j+1; k<=MAX_PRICE; k++) {if(e_coin * j + c_coin * k == goods) {printf("%5d %2d %5d %2d %d+%d=%d %d/%d+%d/%d=%d\n",e_coin * j, j, c_coin * k, k,e_coin * j, c_coin * k, goods,e_coin * j, j, c_coin * k, k, coin);break;}}}}return 0;
}
输入两组数据,一是620和2100,二是980和5820,程序运行结果如下:
620 2100
380 2 1720 4 380+1720=2100 380/2+1720/4=620
250 1 1850 5 250+1850=2100 250/1+1850/5=620
324 1 1776 6 324+1776=2100 324/1+1776/6=620
1140 3 960 4 1140+960=2100 1140/3+960/4=620
810 2 1290 6 810+1290=2100 810/2+1290/6=620
435 1 1665 9 435+1665=2100 435/1+1665/9=620
896 2 1204 7 896+1204=2100 896/2+1204/7=620
1500 3 600 5 1500+600=2100 1500/3+600/5=620
1620 3 480 6 1620+480=2100 1620/3+480/6=620
1680 3 420 7 1680+420=2100 1680/3+420/7=620
1716 3 384 8 1716+384=2100 1716/3+384/8=620
1740 3 360 9 1740+360=2100 1740/3+360/9=620
980 5820
12 1 5808 6 12+5808=5820 12/1+5808/6=980
30 2 5790 6 30+5790=5820 30/2+5790/6=980
60 3 5760 6 60+5760=5820 60/3+5760/6=980
120 4 5700 6 120+5700=5820 120/4+5700/6=980
300 5 5520 6 300+5520=5820 300/5+5520/6=980
416 2 5404 7 416+5404=5820 416/2+5404/7=980
780 3 5040 7 780+5040=5820 780/3+5040/7=980
375 1 5445 9 375+5445=5820 375/1+5445/9=980
1212 3 4608 8 1212+4608=5820 1212/3+4608/8=980
1500 3 4320 9 1500+4320=5820 1500/3+4320/9=980
2020 4 3800 8 2020+3800=5820 2020/4+3800/8=980
2600 5 3220 7 2600+3220=5820 2600/5+3220/7=980
2400 4 3420 9 2400+3420=5820 2400/4+3420/9=980
3750 5 2070 9 3750+2070=5820 3750/5+2070/9=980
3980 5 1840 10 3980+1840=5820 3980/5+1840/10=980
《九章算术》卷第二 粟米的四十五题和四十六题给出的解也在上述结果中。
然而,程序计算出的可行解远多于1个,这是假定1钱最多买10个物品条件下得到的结果。
I00024 出钱买羽相关推荐
- 三手火箭载二手飞船送四名平民上太空,马斯克负责创造历史,另一位富豪出钱买单...
博雯 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 马斯克又创造了商业航天新历史. 北京时间今天上午8点02分,佛罗里达州肯尼迪航天中心,SpaceX的猎鹰9号火箭搭载龙飞船发射升空. ...
- 趣味程序之古典与经典问题系列
古典与经典问题系列程序一览如下,点击进入博客文章: I00008 百鸡问题 I00013 鸡兔同笼 I00022 孙子定理 I00023 鸡兔同笼解法二 I00024 出钱买羽 I00014 汉若塔问 ...
- 《程序设计技术》课程辅助学习资料
本文档提供课程相关的辅助学习资料. 阅读程序是提高程序设计水平的最为有效的方法,<程序设计技术>课程至少应该阅读后面提供链接博文中的基础部分.能够阅读完基础部分的博文,则可以给课程学习奠定 ...
- 什么是pdi检测_为什么国人买车钟爱白色?这几点购车陷阱不要踩
买车,大家最注重的是哪些细节呢?一般懂车的人都会先看汽车的性能和价格,也就是我们常说的性价比,当然了,这里也得带上汽车的颜值.俗话说,颜值不够,衣品来凑,人是这样,车也一样,我们先抛开汽车本身的造型不 ...
- 舌尖上的职场(三)我来买单!(转)
对于每个决心闯荡饭局的职场人,一个至为关键的问题便是--谁来为饭局买单? "我来买单!"老孙的回答很明确. "自己酒足饭饱,别人出钱买单,这有什么不好?"一听此 ...
- 舌尖上的职场(三)我来买单!
舌尖上的职场(三)我来买单! 对于每个决心闯荡饭局的职场人,一个至为关键的问题便是--谁来为饭局买单? "我来买单!"老孙的回答很明确. "自己酒足饭饱,别人出钱买单,这 ...
- 打算在县城“买”片地
大家好,我是沉默王二. 我老家不在县城,在离县城的一个很远的村里. 远到什么程度呢? 上小学的时候,家里买了一台黑白电视机,如果没记错的话,应该是熊猫牌,接收信号的天线是用一根长长的木桩支到房顶上的, ...
- 九章算术卷第二 粟米
粟米之法:粟率五十粝米三十 粺米二十七凿米二十四 御米二十一小●十三半 大●五十四粝饭七十五 粺饭五十四凿饭四十八 御饭四十二菽.答.麻.麦各四十五 稻六十豉六十三 飧九十熟菽一百三半 櫱一百七十五 ...
- [生存志] 第117节 九章算术均徭赋
九章算术均徭赋 贾谊在27岁时向汉文帝进献的<治安策>一文,洋洋洒洒6844个字,写了汉帝国开国30年时的九件让他忧伤难过的事情,所谓『可 ...
最新文章
- 基于微软开源深度学习算法,用 Python 实现图像和视频修复
- Django 各类配置选项全集
- 模拟运维中产品上线流程
- SQL Server2008附加数据库之后显示为只读时解决方法
- oracle 外部表装载,Oracle 原理:数据装载 ,SQLldr ,外部表
- 再谈angularjs DI(Dependency Injection)
- Go语言详细介绍:logo和版本
- 音创linux版e100加歌,【图片】音创高清点歌机E100-3D版 火爆上市 现将资料爆出_点歌机吧_百度贴吧...
- UEditor 配置
- oppo系统android版本下载,oppo手机助手
- 群晖系统硬盘损毁的修复
- Windows10查看便签
- 中间件系列六 RabbitMQ之Topic exchange 用法
- 下岗工冰城卖火“鱼豆腐”
- 有些段子,外行人根本看不懂,只有程序员看了会狂笑不止
- 开门的磁卡在哪里配_门禁卡能配吗?
- 设备健康管理软件如何帮助企业优化设备维保计划?
- FileOutputStream flush()
- 关闭Nao机器人自带的摔倒保护
- 浙江大学计算机2016年推免录取名单,浙江大学2017年计算机科学与技术学院推免生名单...
热门文章
- 解决unity 打包在Android 8.0上启动出现黑屏问题(Android权限弹窗问题)
- Comet:基于HTTP长连接的“服务器推”技术
- summernote 不能上传图片_Typora自定义命令自动上传图片
- virtualbox安装win7_全网最详细的安装eNSP和HCL步骤和出现的问题及解决方法
- php高德地图计算距离接口,高德地图计算两坐标之间距离
- 认识HTML与CSS
- Spring MVC中静态资源加载
- Vertica系列: Vertica 数仓简单介绍
- Hive与RDBMS的区别
- Transformations on DStreams之updateStateByKey 的使用和状态累加