【发布时间】:2018-02-01 02:17:57
【问题描述】:
我有以下情况:
我正在生成 n 个大小为 3 的组合,由 n 个值组成。每个第 k 个组合 [0...n] 从一个值池中提取,位于 n 个集合列表的第 k 个索引中。每个值可以出现 3 次。因此,如果我有 10 个值,那么我有一个大小为 10 的列表。每个索引都包含一组 0-10 的值。
因此,在我看来,这样做的一个好方法是对所有集合中的所有可用值进行计数。所以,如果一个值是稀有的(假设只剩下 1 个),如果我有一个可以查找最稀有值的结构,并让结构告诉我它位于哪个索引中,那么它将生成可能的组合更容易。
我怎么能这样做?一个结构来保持元素计数,以及一个字典来跟踪包含该值的列表索引呢?
编辑:我想我应该在这里解决一个我想要解决的特定问题,即如何更新列表的每个索引(或我最终使用的任何其他结构)的集合,以便当我使用一个值 3 次,它对其他所有组合都不可用。
谢谢。
另一个编辑
当我什至很难理解我的要求时,这似乎有点过于抽象而无法要求解决方案。我很快就会回来提供一些代码,如果您有兴趣,请在 1.5-2 小时后回来查看。
【问题讨论】:
-
您能添加一些代码以清楚起见吗?我想我遵循了你想要做的事情,但我并没有很好地想象你从什么开始。
-
用 Guido 的话来说,“代码会说话。”
-
我刚刚开始使用我的程序的这一部分。当我有一些代码时(肯定会在接下来的几个小时内),我会发布一些。
标签: python set combinations counter