【发布时间】:2013-06-10 11:35:26
【问题描述】:
我有三个数字 6,9,20。对于给定的数字,我需要检查它是否可以等于这三个数字的倍数之和。 例如: n = 47 则可以确定 47 = 9*3 + 20
n=23 那么不可能没有组合。
可以在o(n^3)中确定。但是有没有更好的方法呢?
【问题讨论】:
-
系数可以为负吗?
-
你需要看看群论和生成器。数学家已经解决了这个问题,以确定例如覆盖整个货币价值集所需的最小硬币集(便士、美元)。
-
@KarolyHorvath:n=41 可以用负系数解决,所以我猜不是。
-
你是对的,gcd 是 1,所以每个数字都有一个解。
-
我想我理解错了,但是 41= 2*6 + 1*9 + 1*20