Equivalent Java de nchoosek() MatLab
Bonjour à tous,
Je suis actuellement en train de développer une fonction Java à partir d'un code MatLab. Je bloque pour retourner le résultat de la fonction MatLab nchoosek(n,k) sachant que dans mon cas n correspond à un vecteur.
Pour être plus explicite, voici le morceau de code MatLab que je souhaite coder en Java :
Code:
1 2 3 4 5 6 7 8 9 10
| A=zeros(2^n-2,n);
A1=A;
k1=1:n;
nn1=1;
for i=1:n
x=nchoosek(k1,i);
[n1 n2]=size(x);
A(nn1:nn1+n1-1,1:n2)=x;
nn1=nn1+n1;
end |
Pour l'instant, voici ma fonction retournant le coefficient binomial, mais qui ne prend pas en paramètre un vecteur.
Code:
1 2 3 4 5 6 7 8 9 10 11
| public static int binomialCoef(int n, int m) {
int[] b = new int[n + 1];
b[0] = 1;
for (int i = 1; i <= n; i++) {
b[i] = 1;
for (int j = i - 1; j > 0; j--) {
b[j] += b[j - 1];
}
}
return b[m];
} |
Je ne suis pas le roi de l'algorithmique (ni de MatLab d'ailleurs), du cout j'aimerai de l'aide pour passer ce casse-tête.
Cordialement,
Tehko