找到每个可能的线性组合,它等于R中的常数和边界条件

时间:2013-04-29 17:03:58

标签: r combinations combinatorics

一直试图解决这个问题,但一直有问题,并怀疑有任何简单的方法可以做到这一点。所以说我有一些常量向量,例如:

[1] -2 -3  1

现在说我要定义-2 * x -3 * y + 1 * z = -5并找到x,y和z的每个不同组合,其中x,y和z是整数和abs(x) ,abs(y)和abs(z)都小于或等于5.所以输出看起来像。

2, 0, -1
1, 1, 0
1, 0, -2
0, 0, -5

等...

谢谢!

2 个答案:

答案 0 :(得分:2)

如果问题与示例中一样小,您可以使用:

combs <- as.matrix(expand.grid(-5:5,-5:5,-5:5))    
combs[combs %*% c(-2,-3,1) == -5,]
#      Var1 Var2 Var3
# [1,]    3   -2   -5
# [2,]    0    0   -5
# [3,]   -3    2   -5
# [4,]    5   -3   -4
# [5,]    2   -1   -4
# ...

答案 1 :(得分:0)

您应该查看整数编程部分中的CRAN任务视图。