我正在寻找整数分解的特定情况的有效解决方案。高效我的意思是比我目前拥有的要快得多O(2^n)
(n 表示我们完成后数组中的元素数)。
假设我们有以下数组:[4, 5, 11]
并且“目标”为 84。
我们想知道是否可以满足4*a + 5*b + 11*c = 84
,
给定以下约束:
- 0 <= 一 <= 3
- 0 <= b <= 2
- 0 <= c <= 1
如果我们没有找到解决方案,我们将一个整数添加到数组中,比如 15:[4, 5, 11, 15]
现在我们想知道是否有任何满足4*a + 5*b + 11*c + 15*d = 84
鉴于
- 0 <= 一 <= 4
- 0 <= b <= 3
- 0 <= c <= 2
- 0 <= d <= 1
...然后我们重复这个过程,直到找到解决方案,或者最多 n 次。我想知道我们是否可以利用问题的重复性来找到有效的解决方案:
- “目标”不变
- 整数按升序排列
- 每次我们添加一个新元素时,a,b,c... 的最大约束增加 1
- 每次重复都会将某些内容添加到公式中,但没有任何更改(约束除外)
有任何想法吗?