Pessoal,
Tenho uma situação onde preciso popular um float[][] a partir de um float[]. Quero garantir que os valores em float[][] sejam únicos. Pensei na estratégia abaixo:
[code]public float[][] buildTwoDimensionFloatArray(float[] oneDimensionFloatArray) {
int c = SimpleCombination2by2(oneDimensionFloatArray); // retorna o fatorial para oneDimensionFloatArray
twoDimensionFloatArray = new float[c][2]; // cria o float[][] com dimensões (c,2)
float[] oneDimensionFloatArrayMinus1 = new float[oneDimensionFloatArray.length - 1]; // cria um float[] com tamanho igual a (oneDimensionFloatArray - 1)
for (int i = 0 ; i < oneDimensionFloatArray.length ; i++) {
float removedFloat = oneDimensionFloatArray[i]; // armazena o valor removido de oneDimensionFloatArray
for (int j = 1 ; j < oneDimensionFloatArray.length ; j++) {
oneDimensionFloatArrayMinus1[j -1] = oneDimensionFloatArray[j]; // popula o oneDimensionFloatArrayMinus1 a partir de oneDimensionFloatArray
}
for (int k = 1 ; k < oneDimensionFloatArrayMinus1.length ; k++) {
float nextFloat = oneDimensionFloatArrayMinus1[k];
fuzzyPairs[removedFloat][nextFloat];
}
}
return fuzzyPairs;
}
private int SimpleCombination2by2(float[] oneDimensionFloatArray) {
BigInteger C = BigInteger.ZERO;
int c = 0;
int m = oneDimensionFloatArray.length;
int p = 2;
BigInteger M = getFactorial(m);
BigInteger mMinusP = getFactorial(m - p);
BigInteger P = getFactorial(p);
C = M.divide((mMinusP.multiply(P)));
c = C.intValue();
return c; // retorna a quantidade de possíveis combinações simples (sem repetição) de oneDimensionFloatArray.
}[/code]
A linha abaixo retorna um erro dizendo que não pode converter de float para int
fuzzyPairs[removedFloat][nextFloat];
Mas, quando eu defino o float[][] como abaixo, eu não estou apenas informando as dimensões?
float[][] twoDimensionFloatArray = new float[c][2];
Obrigado desde já!
Gustavo