ePerTutti


Appunti, Tesina di, appunto informatica

VARIABILE ALETORIA BINOMIALE

ricerca 1
ricerca 2

VARIABILE ALETORIA BINOMIALE


La variabile aleatoria binomiale è una variabile discreta in quanto si basa su un numero finito di elementi e si indica con B(m d . In particolare lo spazio degli eventi è formato da E ed E negato. Siamo in presenza perciò di un sistema completo, infatti i due eventi sono due a due incompatibili e la loro unione forma omega (W

La probabilità che l'evento si verifichi si indica con la lettera p e per tanto la probabilità che non si verifichi è 1-p (la probabilità di W è 1), cioè q.



P è un parametro fondamentale assieme a n, che è il numero di prove effettuate indipendenti e nelle stesse condizioni, in modo che la probabilità possa essere ogni volta p. Il numero di successi in n prove si indica con la lettera k, che è una variabile.

Da questo si può calcolare la probabilità di avere k successi in n prove, utilizzando la formula generale:

P(k)= n ทpk ทq n-k   

k

La sommatoria delle P(k) è uguale a 1 perche come ho detto prima siamo in presenza di un sistema completo di eventi. Questa ugualianza è dimostrabile anche matematicamente:

n   

P(k)= n pk q n-k =

k=0 k=0 k

= (p+q)n =   // Calcolo di una potenza di un binomio

= (p+1-p)n =

=1n = 1


Sulla binomiale si possono calclare il valore atteso E(k), va varianza VAR(k) e la moda Mo:

Il valore atteso è il prodotto tra n e p:

E(k)=n p

La varianza è il prodotto tra il numero di prove (n), la probabilità dell'evento (p) e la probabilità di non verificarsi (q):

VAR(k)=n p q

Per calcolare la moda, prima si esegue un calcolo il cui risultato potrà essere un numero intero o un numero reale:

Mo=n p-q

Nel caso in cui il risultato sia un numero intero, la moda sarà espressa con due valori, rispettivamente:

Mo=n p-q ed Mo=n p-q+1=n p+p

Nel caso in cui il risultato sia un numero reale, la moda sarà il risultato della prima operazione considerando solamente la parte intera e aggiungendo 1:

Mo = [n p -q]+1





- Programma


DICHIARAZIONE VARIABILI

Variabili di input

- int n : Numero di prove effettuate (intero)

- float p : Probabilità che l'evento E si verifichi (decimale)

Variabili di output

- float Pk[30] : Variabile aleatoria binomiale (array)

- float E : Valore atteso (decimale)

- float var : Varianza (decimale)

- float Mo : Moda (decimale)

Variabili in uso nel pgm

- int scheda,modo : Variabili per l'uso della grafica

- char rchar[40] : Stringa di caratteri utilizzata durante la visualizzazione del grafico

- int i,j,a,y,yy,z : Variabili per cicli e controlli

FUNZIONI

- void Controllo1 : Controllo sull'inserimento di prove effettuate

Il valore immesso deve rientrare nel range di valori che va da 0 a 32'766 (massimo valore rappresentabile con un integer).

- void Controllo2 : Controllo sull'inserimento della probabilità

Il valore immesso deve rientrare nel range di valori che va da 0 a 1 (probabilità di Ω).

- void Ordina : Ordinamento crescente di Pk

L'ordinamento avviene con il metodo chiamato Bubble - Sort.

DESCRIZIONE DEL PGM

Immissione dati

L'inserimento del numero di prove avviene con il controllo,che richiede l'inserimento se è stato riscontrato un errore, e la stessa cosa avviene con l'inserimento della probabilità. Poi stampa a video la tabella di giuste dimensioni con i vari valori possibili di k.

Calcolo della binomiale

La prima probabilità P(k) con k=0 viene calcolata con la formula abbreviata di qn . Le altre vengono calcolate in più istruzioni in un ciclo; per verificare l'esattezza dei calcoli fa la sommatoria delle P(k) e la mostra a video.

Valore atteso, varianza, moda

Il valore atteso e la varianza vengono calcolati immediatamente con la formula e stampati; per il calcolo della moda si esaminano i tre casi  con Mo<0, Mo= numero reale e Mo= numero intero.

Grafica

La sessione di grafica inizia dopo aver premuto INVIO e disegna gli assi, le frecce, scrive il titolo, scrive i nomi degli assi e salva nelle variabili 'a' e 'z' le costanti di tutti e due gli assi (sapendo lo spazio in pixel a disposizione per il disegno). Disegna la scala sull'asse x con un ciclo e stampa i rispettivi valori. Lo stesso avviene con l'asse y, ordinando però prima il vettore Pk. In fine vengono disegnati i punti a dispersione.










- Listato del programma



* Croci Jvan 4^ A Informatica 16-l0-2000 *


// Input: n, p.

// Output: Variabile aleatoria BINOMIALE, E(k), VAR(k), Mo, Grafico.

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<values.h>

#include<graphics.h>

int n;  // Numero di prove

float p;    // Probabilit . di E

float Pk[30],E,var,Mo;  // Variabili di output

int i=0,j=0,a=0,y=0,yy=0,z=0;

char rchar[40];

int scheda,modo;

void Controllo1(int val,int &ritorno,int &cont);

void Controllo2(float val,int &ritorno2,int &cont2);

void Ordina();

void main(void)


while(a==1);

do


while(a==1);

printf('nn ษอออออออหอออออออออปn');

printf(' º k º P(k) ºn');

printf(' ÌอออออออIอออออออออ¹n');

for(i=0;i<n+1;i++)

printf(' º º ºn');

printf(' ÈอออออออIอออออออออ¹n');

printf( º ºn');

printf( Èอออออออออ¼n');

for(i=0;i<n+1;i++)


//----- ----- --------- ----- -------- BINOMIALE -------- ----- ------

Pk[0]=(pow(1-p,n));

gotoxy(15,12+(yy*2)+(y*2));

printf('%.4f',Pk[0]);

for(j=1;j<n+1;j++)


E=0;

for(i=0;i<n+1;i++)

E=E+Pk[i];    // Sommatoria di P(k) = 1

gotoxy(15,12+n+2+(yy*2)+(y*2));

printf('%.4f',E);

//----- ----- ------------- VALORE ATTESO, VARIANZA, MODA ----- ----- ------------

E=0;

E=n*p; // Valore atteso E(k)

var=n*p*(1-p);   // Varianza VAR(k)

printf('nnn Il valore atteso di k [ E(k) ] S: %.4fn',E);

printf(' La varianza di k [ VAR(k) ] S: %.4fn',var);

Mo=(n*p)-(1-p);

if(Mo<0) // Numero < 0


else


else // Numero intero


}

getch();

//----- ----- --------- ----- ------- GRAFICA -------- ----- ------ ---

printf('nn Per visualizzare il grafico premere il tasto INVIO ');

getch(

detectgraph(&scheda,&modo);

initgraph(&scheda,&modo,'c:borlandcbgi');

clrscr(

setfillstyle(

floodfill(

line( // Asse y =410

line( // Asse x =440


line(

line( // Freccia

line(


line(

line( // Freccia

line(


settextstyle(

setcolor(

outtextxy(130,0,'Variabile aleatoria Binomiale');


a=440; // Costante asse x

z=390; // Costante asse y


setcolor(15);

settextstyle(1,0,1); // Nomi assi

outtextxy(550,450,'k');

outtextxy(40,10,'P(k)');


setcolor(

y=a/(n+1);

settextstyle(

for(i=0;i<n+1;i++)


yy=z/Pk[Mo];

settextstyle(

for(i=0;i<n+1;i++)

line(95,430-(Pk[i]*yy),105,430-(Pk[i]*yy)); // Scala asse y

setcolor(

setfillstyle(

for(i=0;i<n+1;i++)


setcolor(

Ordina(

for(i=0;i<n+1;i++)


getch(

// Termine pgm

//----- ----- --------- ----- ------- FUNZIONI -------- ----- ------ --

void Controllo1(int val,int &ritorno,int &cont)


else

ritorno=0;


void Controllo2(float val,int &ritorno2,int &cont2)



void Ordina()

//

} //

}

while((n>0) && (ordinato==1));






Privacy

© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta