2013-04-29 1 views
0

Пробовал выяснять это, но имел проблемы и подозревал, что есть простой способ сделать это. Так что у меня есть некоторый вектор констант, например:Поиск любой возможной линейной комбинации, которая равна константе в R с граничными условиями

[1] -2 -3 1 

Теперь сказать, что я хочу, чтобы определить -2 * х -3 * у + 1 * г = -5 и найти все различные комбинации х, у, z, где x, y и z - целые числа, а abs (x), abs (y) и abs (z) все меньше или равно 5. Таким образом, результат будет выглядеть примерно так.

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

и т.д ...

Спасибо!

ответ

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 
# ... 
0

Вы должны посмотреть на представление задачи CRAN в разделе программирования целых чисел.

Смежные вопросы