Richiamo dati da un metodo: calcolo coefficiente binomiale

di il
1 risposte

Richiamo dati da un metodo: calcolo coefficiente binomiale

Ciao a tutti! sono alle prese con un nuovo problemino.
dovrei riuscire a calcolare il coefficiente binomiale (attraverso un metodo) , usando-richiamando il metodo del fattoriale. praticamente è cosi: ci sono due numeri (5,3 esempio) per calcolare il coeff.binomiale dovrei fare: 5!/(3!*(5-3)!)
ho fatto il metodo fattoriale, ma non so come creare il metodo coefficiente binomiale che per risolvere il calcolo si avvalga dei metodi del fattoriale.
qualcuno puo aiutarmi?
vi posto il codice..

public class CalcoloBinomiale{ public static int n,differenza,denominatore,r,coeff_binomiale;
	public static void main(String[] args) {
		int n,n2,differenza,denominatore,coefBinomiale;
		Scrittore.video.println("inserisci primo numero ");
        n=Lettore.tastiera.leggiInt(); 
        Scrittore.video.println("inserisci secondo numero ");
		n2=Lettore.tastiera.leggiInt();
		differenza=n-n2;  
		/*Scrittore.video.println(n + "! = " + fattoriale(n));
		Scrittore.video.println("differenza! tra " +n+ " e " +n2+ " e' " + fattoriale(differenza));*/
		denominatore=(fattoriale(differenza)*fattoriale(n2));
		/*Scrittore.video.println("denominatore " + denominatore);*/
		coefBinomiale=(fattoriale(n)/denominatore);
		Scrittore.video.println("Coefficiente binomiale e' " + coeff_binomiale(r));
	}
	 public static int coeff_binomiale(int r) {
     
     	denominatore=(fattoriale(differenza)*fattoriale(n2));
     	r=(fattoriale(n)/(fattoriale(n2)*denominatore));
     	return r;
     //	throw new java.lang.ArithmeticException;
}  
public static int fattoriale(int n)
{ int f=1;
while (n>0)
{ f=f*n;
n--;}
return f;}	
}

1 Risposte

  • Re: Richiamo dati da un metodo: calcolo coefficiente binomiale

    Ciao,
    io per il fattoriale creerei un metodo ricorsivo del tipo:
    public static int getFattoriale( int n) {
    if (n<0) {
    System.err.println("Errore nel metodo getFattoriale: n < 0");
    System.exit(1);
    }
    if (n==0)
    return 1;
    return n*getFattoriale(n-1);
    }
    Per quanto riguarda il coefficiente binomiale fare così:
    public static float getCoefficienteBinomiale(int n1, int n2) {
    if (n1<n2) {
    System.err.println("Errore nel metodo getCoefficienteBinomiale: n1 < n2");
    System.exit(2);
    }
    float x = (float) getFattoriale(n1)/(getFattoriale(n2)*getFattoriale(n1-n2));
    return x;
    }
Devi accedere o registrarti per scrivere nel forum
1 risposte