Combinação Linear

Olá, caros,

Estou com dificuldade em implementar uma combinação linear em Java.

Para quem não sabe o que é uma combinação linear:

Para n = 2 (duas variáveis: ‘x’ e ‘y’, e seus respectivos coeficientes ‘a’ e ‘b’).

0 * x + 0 * y
0 * x + 1 * y
0 * x + 2 * y
. .
. .
0 * x + b * y
1 * x + 0 * y
1 * x + 1 * y
1 * x + 2 * y
. .
. .
1 * x + b * y
. .
. .
. .
a * x + b * y

Em resumo, todas as possibilidade dos coeficientes ‘a’ e ‘b’.

Só lembrando que o ‘n’ se recebe via teclado. Para n = 3, tem-se ‘a’, ‘b’ e ‘c’ e assim por diante.

Agradeço desde já.

Problema bem interessante, e um bom exemplo pra utilizar TDD. hehe

Mas vamos lá. Qual é a sua dificuldade? O que você tem feito e qual sua idéia inicial?
Abs,

Quais são os dados de entrada? Só o n?
Coloca aqui a definição matemática ou enunciado do problema direitinho pra eu poder entende-lo melhor.
Abs,

Tem uma definição bacana aqui. Acho que na verdade ele quer resolver a seguinte questão:
Dados os vetores V1, V2, V3…, Vn, qual seria o resultado da equação aV1 + bV2 + cV3 … + kVn = y(também dado)?

No link que passei tem um exemplo de resolução usando o método de Gauss, que basicamente serão eliminações sucessivas. Tem outras formas de resolver também. Esse algoritmo não é difícil de montar, pega um papel e caneta que você resolve.

Note que seu problema seria bem simples de resolver se você já soubesse n, porque então seria só você fazer n “fors”, um “for” dentro do outro. No caso em que você mostrou, teríamos algo como

for (int i = 0; i <= a; ++i) {
    for (int j = 0; j <= b; ++j) {
        System.out.printf ("%d * x + %d * y %n", i, j);
    }
}

A primeira coisa a ver é que você precisa definir um vetor com n coeficientes.
A segunda é que você tem de fazer tudo com apenas um “while”, em vez de usar “n” fors, já que você não pode simplesmente criar um programa em tempo de execução com “n” fors, um dentro do outro. Para fazer isso, vou mostrar a tabela (feita na mão) e então você vai entender como é que você criaria um programa que imprimisse essa tabela.
Vamos resolver o seu problema para o caso a = 3, b = 4, n = 2.
Coeficientes:

x  y
0  0  -- comece com 0, 0
0  1  -- incremente y
0  2  
0  3  
1  0  -- quando y == b, então você zera y, e incrementa x
1  1
1  2
1  3
2  0
2  1
2  2
2  3
3  0
3  1
3  2
3  3
4  0
4  1
4  2
4  3  -- quando x == a, e y == b, então terminou de fazer tudo.