社区
C#
帖子详情
算法问题
yanli
2009-06-03 02:43:07
比如说药品,进货时有药品的批次及数量,要求任意数量的的最少批次。
批次 数量
1 200
2 300
3 50
4 150
现在要500数量的药品,哪么根据最少批次的原则应该选择1,2批次,而不能选择2,3,4批次。
用循环套循环的笨办法,感觉运算量很大,各位老大有什么好的方法吗?多谢了。
...全文
104
15
打赏
收藏
算法问题
比如说药品,进货时有药品的批次及数量,要求任意数量的的最少批次。 批次 数量 1 200 2 300 3 50 4 150 现在要500数量的药品,哪么根据最少批次的原则应该选择1,2批次,而不能选择2,3,4批次。 用循环套循环的笨办法,感觉运算量很大,各位老大有什么好的方法吗?多谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
azhe0660
2009-06-03
打赏
举报
回复
顶11楼和14楼.动态规划是正解
光宇广贞
2009-06-03
打赏
举报
回复
典型的动态规划,背包算法……
请楼主查阅。
xiangbupingfan
2009-06-03
打赏
举报
回复
操作系统分配算法
cheeks
2009-06-03
打赏
举报
回复
贪心比较好吧最快
windstore
2009-06-03
打赏
举报
回复
贪心算法不能获得最优解。。
获得最优解的话,需要用动态规划。。
楼主可以搜下很经典的"背包问题"在贪心算法和动态规划中的实现
guohouchang1
2009-06-03
打赏
举报
回复
[Quote=引用 8 楼 hecker728 的回复:]
现在需要的药品 x
先将批次的数量排序
批次 数量 arrayCount
2 300 a
1 200 b
4 150 c
3 50 d
result=0;
for(int i=0;i <arrayCount.length;i++)
{
if((x-result)>=arrayCount[i])
{
result+=arrayCount[i];
//输出i对应的批次
return;
}
}
递归调用,直到result=x;
[/Quote]
递归算法效率低
qgylovelj
2009-06-03
打赏
举报
回复
楼主把问题再描述一下,你想要的结果是必须正好加起来 500还是可以大于500?如果是可以大于500就很简单,如果是必须等于500还是的用循环,
等楼主发言ING。。。。。
hecker728
2009-06-03
打赏
举报
回复
现在需要的药品 x
先将批次的数量排序
批次 数量 arrayCount
2 300 a
1 200 b
4 150 c
3 50 d
result=0;
for(int i=0;i<arrayCount.length;i++)
{
if((x-result)>=arrayCount[i])
{
result+=arrayCount[i];
//输出i对应的批次
return;
}
}
递归调用,直到result=x;
烈火蜓蜻
2009-06-03
打赏
举报
回复
接分来了
linlusheng
2009-06-03
打赏
举报
回复
先找最大的,未必是最优的,但是按照楼主的贪心准则,你要的是最少次数,所以只能按照一楼那样,先遍历所有数字,找出最大,再依次循环,当然,即使这样,有时候得到的结果也不是最优的
Mr-Jee
2009-06-03
打赏
举报
回复
贪心吧。。
12345_
2009-06-03
打赏
举报
回复
不太明白,500这个数必须刚好是两个批次加起来的和么?
12345_
2009-06-03
打赏
举报
回复
貌似是先进先出法
ToHai
2009-06-03
打赏
举报
回复
jf
bbwolfcool
2009-06-03
打赏
举报
回复
如果你这个必须正好加起来 500,就必须嵌套迭代了吧,
如果多一些没关系,那就比较简单了
找到最大的数字,然后把其余的从小到大排序,一个个加,刚好加起来大于等于 500,就要那个数
比如 先找到 300,然后一个个试和
算法
技术手册 - 中文版
《
算法
技术手册》内容简介:开发健壮的软件需要高效的
算法
,然后程序员们往往直至
问题
发生之时,才会去求助于
算法
。《
算法
技术手册》讲解了许多现有的
算法
,可用于解决各种
问题
。通过阅读它,可以使您学会如何选择和...
解决
算法
问题
的五种通用方法
毫无疑问,解决
算法
问题
一定不止5种方法,但是下面的五种方法可能更加有用。但是还是要记住,
算法
靠的是不停的练习,练习越多,很多
问题
就迎刃而解! 同样也必须记住,这五种方法不是单独的组成,它们可以混合在一起...
五分钟带你了解哈希
算法
究竟是什么!
今天呢,我们要讲一些比较深的内容,比如比特币的哈希
算法
问题
。熟悉区块链的朋友首先想到的肯定就是比特币挖矿,比特币挖矿就是不断修改区块头部的随机数,然后计算区块的哈希值,知道这个哈希值满足特定标准的过程...
【操作系统实验】Linux环境下用进程实现银行家
算法
问题
——C语言完整代码+详细实验报告
银行家
算法
是一种最有代表性的避免死锁的
算法
。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性;若分配不会导致系统进入不安全状态,则分配,否则等待。通过...
经典
算法
问题
——稳定匹配(Stable Matching)
经典
算法
问题
——稳定匹配(Stable Matching)
问题
起源 在1962年,经济学家 David Gale 和 Lloyd Shapley 提出:能否设计一个高校录取过程,能够自我执行(self-enforcing)形成一个最佳的匹配效果。
算法
的 C++ ...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章