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 MatLab : Sélectionner tout - Visualiser dans une fenêtre à part
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 fct binomialCoef(n,m) équivalente à nchoose(n,m) MatLab : Sélectionner tout - Visualiser dans une fenêtre à part
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