【发布时间】:2019-02-05 05:47:03
【问题描述】:
我有一个带有2 <= n <= 100 双打的数组:
A = [a1, a2, ... , an], ai > 0
和一个整数2 <= k <= min(n, 20)。我需要将A 拆分为k 子数组:
B1 = [a1, a2, ... , ap]
B2 = [ap+1, ap+2, ... , aq]
...
Bk = [aw+1, aw+2, ... , an]
使得每个B 中的总和几乎相等(很难给出严格的定义——我对近似解感兴趣)。
例子:
Input: A = [1, 2, 1, 2, 1], k=2
Output: [[1, 2, 1], [2, 1]] or [[1, 2], [1, 2, 1]]
我尝试了一种概率方法:
来自
[1, 2, .., n]的样本,使用A作为概率权重将样本切成分位数以找到好的分区,
但这对于生产来说不够稳定。
tl;dr 这个question 询问关于 2 块划分的问题。我需要k-chunk 分割。
【问题讨论】:
标签: python python-3.x algorithm approximation