【求一高效算法,感兴趣的朋友可以来试试,高分】解决方案整理系列二

来源:互联网 发布:java continue 编辑:程序博客网 时间:2024/05/17 01:13

 问题: (帖子路径: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

 

 

 

 

更有58sxx_tt朋友用数据库实现:很惊艳!

给大家贴段数据库实现方法

 

78楼朋友feihua317Java写出了测试代码,并且数据量大小,数据库执行时间的演示:

The following is not the best solution and the cost time is 15-31 ms.

如果小朋友数量只有100的话,代码对性能的影响很小,要礼物数量和小朋友数量都很多,这样才能看出代码性能。我修改了一下,把礼物数量设置到1亿多,小朋友1万个,耗时300多毫秒。

 

92楼朋友fall513DELPHI实现的:

楼上的太多了
我也就懒得看了
我来说说我的想法吧(首先声明我不会JAVA,而且只用DELPHI实现过)

 

之后看你要多少个数就取前几个好了
为了保证每次随机顺序不一样可以初始化随机因子

代码很简单,但是可能比较难理解

 

 

当然还有C/C++ ,C#的解决实例,大家可以参考帖子,希望对大家有帮助