【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列三
来源:互联网 发布:淘宝店主收到法院传票 编辑:程序博客网 时间:2024/05/16 16:02
问题: (帖子路径:http://topic.csdn.net/u/20091027/09/db4cd117-bfbe-491f-bcb8-d54ee08c0787.html)
求一个高效算法:
有100名小朋友,
现在有一堆礼物
若是礼物数量小于100,比如为81,则这个81份礼物随机分配给小朋友,但要确保是一个人只能拿到一份礼物;
若是礼物数量大于100,
比如为115,则每个人至少有一份礼物,部分人有两份礼物,但没人拿到两份份以上的礼物;
比如为245,则每个人至少有两份礼物,部分人有三份礼物,但没人拿到三分份以上的礼物;
就是这个思路,这里声明不是大学老师布置的题目啊,是自己工作中一个抽象出来的问题,
希望得到大家的思路,,参与者,高分重谢!
也是个大家交流的机会
这个帖子让我感慨,我们csdn论坛中卧虎藏龙,真的很佩服,
本次系列一,把主要的解决思想整理一下
地址:http://blog.csdn.net/yinyuan1987/archive/2009/10/30/4748636.aspx
系列二,把大家使用不同的解决方法或实例提出来共享一下
地址:http://blog.csdn.net/yinyuan1987/archive/2009/10/30/4748671.aspx
系列三,把大家对性能方面思路提出来共享一下
地址:http://blog.csdn.net/yinyuan1987/archive/2009/10/30/4748715.aspx
三.对性能方面的思考:
79楼朋友asxinyu_usst说:
楼主说的是不是礼品和人数都很大时,产生的随机数会冲突导致效率降低啊?
我认为,上面的方法有几种都可行,关键是用的随机数和打乱小朋友的算法效率?
如果人数比较少呢,把小朋友打乱,相当于产生一个随机全排列,每次按照这个随机全排列来打乱,然后从头到尾分配即可;这种随机全排列的生产算法我研究过,我有比较好的方法实现。
如果人数比较多的话,产生随机全排列的方法不一定可行,但是呢,可以对问题进行分块,在块内进行随机分配,我想你抽象出来的问题既然要随机分配的话,应该对这个随机性有些要求,否则直接从头到尾分好了。
我认为 随机性的这个要求不同会影响到算法的效率。
78楼朋友引用71楼 gukuitian 的回复:
这个洗牌算法 就类似于生成一组全排列数据啊。。。我有过研究。。。如果你需要的随机性高,花的时间就多点。。。。
98楼朋友sbwwkmyd提供了:
位图法生成随机数
184楼朋友wo554006164测试:
我写了个,礼物1亿,小朋友1万时用时在1秒左右.不怎么样!
- 【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列三
- 【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列一
- 【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列二
- OfficeWiki,喜欢的朋友可以试试啊
- OfficeWiki,喜欢的朋友可以试试啊
- VC 源代码找错,朋友也来试试?
- 感兴趣的技术整理
- echo命令向一个文件写入内容的方法详解,感兴趣的朋友可以参考下。
- 一份Oracle DBA笔试题,有兴趣的朋友可以试试,有意外惊喜喔!
- 添加括号问题 - 某高中计算机竞赛题,有兴趣的朋友可以写写试试
- 产品上线,欢迎感兴趣的朋友试用
- 整理CVPR2012感兴趣的文章
- 整理CVPR2012感兴趣的文章
- 整理CVPR2012感兴趣的文章
- 整理CVPR2012感兴趣的文章
- CVPR2013感兴趣的文章整理
- CVPR2013感兴趣的文章整理
- CVPR2013感兴趣的文章整理
- RealLanSee 同步多端口局域网屏幕监控系统(极好用低占用!)
- linux下定时器的使用(二)
- Android环境搭建_转载
- Visual Studio制作安装包
- 配置Flex Builder 3.2来集成Flex 3.4 SDK
- 【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列三
- EditorGridPanel和渲染器renderer的使用
- ASP.NET MVC 入门 -- 4、Controller与Action
- 按日期累加销售数据
- 自己写的xps转pdf界面,最近发现有bug,这么个小东西都不完善,自己需要加油啊
- SOCKET通信应用程序 简单总结
- 做好准备,迎接3G
- 追求神乎其技的程式设计之道
- Linux搭建C++开发环境