假设我想要达到一定的总分
S
还有一些单独的“pots”,我可以从中获得某些单独的分数,存储为正整数列表。我想知道是否有可能在最短的时间内获得想要的分数
n_i
从大麻中尝试
i
.分数累积。
例如。
-
我正试图得到准确的答案
S=10
要点
-
第一罐是
[1,2]
2号锅是
[4,5,6]
-
如果
n_1=0
,
n_2=1
那就不可能了
-
如果
n_1=1
,
n_2=1
那就不可能了
-
如果
n_1=0
,
n_2=2
那就有可能了(
6
+
4
)
-
如果
n_1=2
,
n_2=1
那就有可能了(
6.
+
2
+
2.
)
我正试图用python编写一段代码来解决这个问题。
我想我应该先找到所有获得分数的组合
s
长度小于或等于
努伊
se、 g.为了
S=10, n_1=1, n_2=1
我会找到
[(10), (9,1), (8,2), (7,3), (6,4), (5,5)]
(我目前不确定是否需要
(4,6)
等等),并对其进行迭代。所以
问题1:如何轻松获取这些数据?
也许是来自
itertools
?
然后,如果你可以尝试每个罐子的次数没有限制,我只需检查组合的每个元素是否在任何一个罐子中;如果是这样,那么它是可能的,打破循环,如果不是,那么继续下一个组合;如果你尝试了所有的组合,但都没有效果,那么这是不可能的。
这种复杂性来自于限制每罐的尝试次数;
问题2:我应该如何修改上述方法来解释这一点?
最后
问题3:有没有其他方法可以解决这个问题?