【发布时间】:2017-05-31 18:02:11
【问题描述】:
我有b buckets 0....b-1 和m apples 0....m-1。一开始所有的苹果都放在0号桶里。
然后运行一些分析会导致苹果在桶中移动。我已经通过一个 2D 列表(作为存储桶)实现了这一点,其中苹果 id 在需要在存储桶之间移动时被删除和附加。然而,这对我的分析来说是非常低效的,因为这些运动是数百万或数十亿的数量级。所以,我想知道是否有更好的解决方案来实现这样的结构?
顺便说一下,选择标题是因为这与集合问题的分区非常相似,其中任何成员都不能放在超过 1 个子集中。这里还举个例子,用 4 个苹果和 3 个水桶来说明更清楚:
time 0:
a=[[0,1,2,3],[],[]]
time 1: (say apple 3 needs to be moved to bucket 2)
a=[[0,1,2],[],[3]]
【问题讨论】:
标签: python set subset partition