Math 计算数据点的行和列

Math 计算数据点的行和列,math,layout,Math,Layout,我有固定数量的列,必须用数据集填充(如果可能的话)。要求数据从上到下、从左到右填充 例如,假设我有4列和6个数据点,表必须这样填充 1 3 5 6 2 4 或用于3列和7个数据点 1 4 7 2 5 3 6 我已经尝试了多种计算方法,如果我回到高中,可能很快就能解决这个问题。但是我又老又灰,我的数学不如以前那么好了;) 如果有任何指点,我将不胜感激。非常感谢。我认为“填充尽可能多”意味着填充单元格的百分比尽可能大。这个问题通常没有唯一的解决方案,但可以使用以下算法来找到解决方案 我进一步假

我有固定数量的列,必须用数据集填充(如果可能的话)。要求数据从上到下、从左到右填充

例如,假设我有4列和6个数据点,表必须这样填充

1 3 5 6
2 4
或用于3列和7个数据点

1 4 7
2 5 
3 6
我已经尝试了多种计算方法,如果我回到高中,可能很快就能解决这个问题。但是我又老又灰,我的数学不如以前那么好了;)

如果有任何指点,我将不胜感激。非常感谢。

我认为“填充尽可能多”意味着填充单元格的百分比尽可能大。这个问题通常没有唯一的解决方案,但可以使用以下算法来找到解决方案

我进一步假设
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

该算法假设每列中至少有一个条目。剩余的单元格可以由其他条目填充,只要它们存在。

要求是什么?例如,为什么第二个例子不是
{1,2,3},{4,5},{6,7}
{1,2,3,4,5},{6},{7}
?感谢您的回复。要求是a)确保填充所有柱,b)先垂直填充,然后水平填充。对于第二个例子,因为必须填充3列,所以需要有3行为什么必须是3行?我介绍的另外两个示例也填充了三列(括在
{}
中的数字应该在同一列中)?因为客户端希望数据逐列填充(即列1有1,2,3,4..n),但也希望填充所有三列(即使最后一列只有一行)那么,把一个数字放在每一列,把所有剩余的数字放在第一列有什么错呢?