17.04.2013 Views

Distribuţia Binomială: Modelare Statistică, Optimizare Numerică, cu ...

Distribuţia Binomială: Modelare Statistică, Optimizare Numerică, cu ...

Distribuţia Binomială: Modelare Statistică, Optimizare Numerică, cu ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Distribuţia</strong> <strong>Binomială</strong>: <strong>Modelare</strong> <strong>Statistică</strong>, <strong>Optimizare</strong> <strong>Numerică</strong>, <strong>cu</strong> Aplicaţii în Bioinformatică şi Biochimie<br />

end;<br />

procedure get_nn(var nn : tip_n; n : integer; var f:text);<br />

var<br />

i : integer;<br />

s : ansistring;<br />

s1 : string[12];<br />

vi : integer;<br />

begin<br />

readln(f,s);<br />

delete(s,1,1);<br />

for i := 0 to n-2 do begin<br />

s1:=copy(s,1,pos(chr(9),s)-1);<br />

delete(s,1,pos(chr(9),s));<br />

val('$'+s1,nn[i],vi);<br />

end;<br />

val('$'+s,nn[n-1],vi);<br />

end;<br />

function bnyx(n, y, x :integer) : tip_prob;<br />

var<br />

ret, x_n : tip_prob;<br />

ny , k : integer;<br />

begin<br />

if(x=0) then begin<br />

if(y>0) then begin bnyx := 0.0; exit; end;<br />

bnyx := 100.0; exit;<br />

end;<br />

x_n := 1.0 - x/n; ny := n - y;<br />

if(n=x) then begin<br />

if(ny>0) then begin bnyx := 0.0; exit; end;<br />

bnyx := 100.0; exit;<br />

end;<br />

ret := 0;<br />

if(y>0)then begin<br />

ret := ret + ln(1.0-x_n)*y;<br />

if(n>y)then begin<br />

ret := ret + ln(x_n)*ny;<br />

if(n-y>y) then y := n - y;<br />

for k := y+1 to n do ret := ret + ln(k);<br />

for k := 2 to n-y do ret := ret - ln(k);<br />

end;<br />

end else ret := ret + ln(x_n)*ny;<br />

bnyx := 100.0*exp(ret);<br />

end;<br />

procedure prob_bino(n: integer; var bino : mat_prob);<br />

var<br />

n_2 , X , Y : integer;<br />

begin<br />

n_2 := n div 2;<br />

for X := 0 to n_2+1 do //n_2+1<br />

for Y := 0 to n do<br />

bino[X][Y] := bnyx(n,Y,X);<br />

for X := n downto n_2 + 2 do<br />

for Y := 0 to n do<br />

bino[X][Y] := bino[n-X][n-Y];<br />

47(157)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!