Ottenere le P(k) di una distribuzione binomiale

di Anonimizzato29034 il
4 risposte
Salve, ho cercato di essere il più breve possibile nel titolo, e quindi sembra chissà cosa devo fare, in realtà quello che succede è che il seguente ciclo for, invece di darmi valori diversi di probabilità, mi da una lista in cui P(0) è 1 e tutti gli altri P(k) sono pari a zero:

int n10=10;
double p, pkappa;

p=1/6;
pkappa=0;
for(i=0;i<=n10;n++)
{
pkappa=(fattoriale(n10)/(fattoriale(i)*fattoriale(n10-i)))*pow(p,i)*pow((1-p),(n10-i));
printf("%i %3.2f \n", i, pkappa);
}

Ovviamente ho omesso alcune parti del programma che in realtà non sono causa del problema, ad esempio la funzione "fattoriale(n)" è una funzione che ho scritto sotto il main per calcolare appunto il fattoriale di un numero intero. L'ho testata per vedere se fosse causa di problemi ma restituisce il risultato corretto. Qualcuno sa come risolvere? Grazie in anticipo per le risposte.

4 Risposte

  • Achilan ha scritto:



    for(i=0;i<=n10;n++)
    Perché non
    for(i=0;i<=10;i++)
    ?
  • Beh in realtà non è necessario, però se volevo cambiare il valore di tutti gli n nella funzione, mi sarebbe bastato cambiare solo il valore della variabile in fase di dichiarazione, e siccome il programma originale serve a calcolare la distribuzione per n diversi, ho fatto così.
  • Ah quell'n++ è un errore, in realtà nel mio codice ho scritto i++
  • Sei già al terzo "in realtà"

    Posta il codice intero e usa i tag CODE.

    Se qualcuno ha voglia di aiutarti almeno non gli fai perdere tempo
Devi accedere o registrarti per scrivere nel forum
4 risposte