0
我有固定數量的列,必須填入數據集(如果可能)。的要求是,所述數據被填充上下,左右計算數據點的行和列
這樣,例如,給定的,我有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
我試圖計算此的多種方式,如果我是在高中的時候,他可能能夠解決它在瞬間。但我老了,灰色,我的數學不如它;
希望任何指針。非常感謝。
我假設通過「儘可能多地填充」你的意思是填充單元格的百分比儘可能大。這個問題通常沒有獨特的解決方案,但可以使用以下算法找到a解決方案。
我進一步假設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列,所以需要三行 – jmls
爲什麼它必須是3行?我提出的另外兩個例子還填充了三列(用'{}'括起來的數字應該在同一列)? –