【发布时间】:2021-06-21 15:23:20
【问题描述】:
我有元素 A 的权重为 1,元素 B 的权重为 2。我需要找到 A 和 B 的可能排列,加起来达到一定数量。
例如,当想要的数量是4,我想得到的是:
[A, A, A, A]
[B, B]
[B, A, A]
[A, B, A]
[A, A, B]
做这样的事情最好的方法是什么?我最初试图通过使用 itertools.permutations 并手动检查总和来强制它(非常低效,但我不确定还有哪里去)但是对于更大的数字是不可能的。如果可能的话,我想知道一种无需导入 itertools 或其他库的方法吗?
【问题讨论】:
-
这听起来像是在解决背包问题。我建议阅读现有解决方案,看看它们是否可以用于解决您的问题。
-
谢谢!看起来这就是我要找的东西。我认为已经存在解决方案,但我无法搜索正确的单词来找到它。
标签: python permutation