求!!将一组数分成6组,6组之和比例固定。

将上千个数字分成6组,每组之和占总和的20%.15%

def deal(data, flag):
    a = []
    for i in data:
        if i >= flag:
            return [i]
        elif a == []:
            a.append([i])
        else:
            a = a + [k + [i] for k in a if sum(k) + i <= flag]
            a.append([i])
    # return sorted(a,key=sum)[-1]
    target = sum(max(a, key=sum))
    return list(filter(lambda x: sum(x) == target, a))


if __name__ == '__main__':
    c = [2, 1, 3, 1, 5, 2, 3, 4]
    flag = sum(c) // 3
    res = deal(c, flag)
    print(res)

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632