求一个分配问题解决方案

Tongls 2006-03-22 09:53:58
1...100 100个数,把它平均分到7个地方。
条件一:个数要平均,即每个地方平均100/7=14个左右。
条件二:每个地方的和要平均。即(1+...+100)/7=721左右。

求各位大侠帮忙解决。
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2006-03-22
  • 打赏
  • 举报
回复
--sql SERVER 2005 中用NTILE.

declare @i as int
select @i=ceiling(count(1)/7) from 表
select *,NTILE(@i) OVER(ORDER BY 字段 DESC) AS 分段
from 表
huailairen 2006-03-22
  • 打赏
  • 举报
回复
要是从1,2开始最后剩了99 和100 放到组里会相差很大。
huailairen 2006-03-22
  • 打赏
  • 举报
回复
能理解吗?
huailairen 2006-03-22
  • 打赏
  • 举报
回复
可以这样:

1组 2组 3组 4组 5组 6组 7组
3-9正序分配 3 4 5 6 7 8 9
10-16 逆序 16 15 14 13 12 11 10
17-23 正序 17 18 19 20 21 22 23
23-30 逆序 30 。。。。
31-37 正序 31 。。。。
以此类推
因为1,2相比100和99太小了放哪个组都行
Tongls 2006-03-22
  • 打赏
  • 举报
回复
怎么会没有明白呢?

比如1,3,4,5,8 分成三组。

结果:8,(1,5),(3,4)
iamltd 2006-03-22
  • 打赏
  • 举报
回复
这个是算法的问题了。
最简单的算法,按1-7-1-7-1-7的顺序放入顺序排列的数。^_^
wkcode 2006-03-22
  • 打赏
  • 举报
回复
问题好象描述的不是很清楚
这类问题如果发到C++上似乎更合适些
Tongls 2006-03-22
  • 打赏
  • 举报
回复
问题1:NTILE是什么函数??
问题2:如果对于一组不连续的数据如何处理??

比如:1,1,4,5,7,.....100,110,118...222,....1000等100个如何处理??

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧