我有固定数量的列,必须用数据集填充(如果可能)。要求数据是从上到下、从左到右填充的
因此,例如,假设我有4列和6个数据点,表必须像这样填充
1 3 5 6
2 4
或3列和7个数据点
1 4 7
2 5
3 6
我已经尝试了多种计算方法,如果我回到高中,可能很快就能解决这个问题。但是我又老又白,我的数学也不如以前好。)
如果有任何建议,我将不胜感激。非常感谢。
发布于 2015-09-25 20:23:29
我假设“尽可能多地填充”的意思是填充的单元格的百分比尽可能大。这个问题通常没有唯一的解,但是下面的算法可以用来找到解决方案。
我进一步假设n
是条目数,c
是列数,r
是行数。
r = ceil(n / c)
remainingAdditionalEntries = n - c
optimalAdditionalEntries = r - 1
nextEntry = 0
for iC from 0 to c - 1
grid[iC][0] = nextEntry++
additionalEntries = min(remainingAdditionalEntries, optimalAdditionalEntries)
for iR from 1 to additionalEntries
grid[iC][iR] = nextEntry++
next
remainingAdditionalEntries -= additionalEntries
next
该算法假设在每一列中至少有一个条目。剩余的单元格可以由其他条目填充,只要它们存在。
https://stackoverflow.com/questions/32778240
复制相似问题