



# Cas 5,                                                                  10.11.2017.



###   Slucajne velicine   ###


# Indikator dogadjaja

# 1.Dva igraca igraju karte. Vjerovatnoca da pobijedi igrac 1 je p, dok je za
# igraca 2 q=1-p. Neka je A dogadjaj da u dvije uzastopne partije  dodje do
# promjene rezultata.

# a) Ocijeniti simulacijom raspodjelu vjerovatnoca indikatora I_A za p=0.4
# b) Neka je X broj promjena rezultat u N nezavisnih partija. Koja je
# vjerovatnoca dogadjaja {X=1}?

# Ispravljen zadatak!

# a)
partija <- function(p) {
  s <- sample(c(0, 1), 2, replace = TRUE, prob = c(p, 1 - p))
  ifelse(s[1] != s[2], 1, 0)
}

mean(replicate(10000, partija(0.4)))

# b)
broj.promjena <- function(N, p) {
  
  # Prvo generisemo vektor sa N jedinica i 0, koji nam oznacava da je pobijedio 
  # prvi odnosno drugi igrac
  
  igra<-sample(c(0,1), size=N, replace = TRUE, prob = c(p,1-p))
  
  # Ako posmatramo apsolutne razlike uzastopnih elemenata ovog vektora, dobicemo
  # tacno 1 tamo gdje je doslo do promjene rezultat (01 ili 10), odnosno 0 ako
  # nije (11 ili 00).
  # Funkcija koja za proslijednjeni vektor x=(x1,x2,...,xn) vraca razliku 
  # uzastopnih clanova je diff(x). Dakle diff(x)=(x2-x1, x3-x2,...,xn-xn-1)
  # Kako hocemo jos apsolutne razlike, primijenimo i funkciju abs()
  
  razlike<-abs(diff(igra))
  
  # Kako nam se trazi broj partija u kojima je doslo do promjene, sumiramo
  # clanove ovog vektora:
  
  sum(razlike)
  
  
}

mean(replicate(100000, broj.promjena(10, 0.4))==1)


# Binomna raspodjela 


# Neka je X~B(n,p)
# dbinom(x, n, p)=P{X = x}
# pbinom(t, n, p)=P{X<= t}
# qbinom(q, n, p)=inf{x iz R: F(x)>= q}
# rbinom(size, n, p) generisanje slucajnih brojeva sa binomnom raspodjelom



# 1. Ocjeniti P{X=3} ako je X iz B(10,0.5) raspodjele 

mean(rbinom(1000, 10, 0.5)==3)

# teorijski, trazena vjerovatnoca bi bila:

choose(10, 3)*(1/2)^3*(1/2)^7

# choose(n, k) daje binomni koeficijent n nad k 


# 2. Neka slucajna velicina X ima B(n,p) raspodjelu. Odrediti raspodjelu
# slucajne velicine Y=n-X.


# 3. Fabrika u toku dana proizvede 100 automobila od kojih svaki s vjerovatnocom
# 0.1 zahtijeva doradu.

# a) Odrediti vjerovatnoca da broj automobila koji zahtijevaju doradu bude
# izmedju 10 i 20.
# b) Koliki treba da bude kapacitet parkinga pa da s vjerovatnocom 0.99 bude
# dovoljan za automobile koji cekaju doradu?

# Neka je X- broj automobila koji zahtijevaju doradu, X~B(100,0.1)
# Trazi se P{10<= X <= 20}


sum(dbinom(10:20, 100, 0.1))

# Ili.. P{10<= X <= 20} = P{X <= 20} - P{X<=9}=F(20) - F(9)

pbinom(20, 100, 0.1) - pbinom(9, 100, 0.1)


# b) C-kapacitet parkinga
#    Hocemo: P{X <= C} = 0.99, tj. F(C) = 0.99

qbinom(0.99, 100, 0.1)

# Provjera:

pbinom(18,100,0.1)  # > 0.99
pbinom(17,100,0.1)  # < 0.99



# Matematicko ocekivanje i disperzija 

# 4. Dat je zakon raspodele slucajne promenljive X{-2 => 1/5, -1 => 1/5, 0 => 
# 1/5, 1=> 1/10, 2 => 3/10 }. Odredi raspodjelu vjerovatnoca slucajne
# promjenljive Y=X^2, kao i njeno matematicko ocekivanje i disperziju.

# Simulacija za domaci.


# 5. Strijelac pogadja cilj sa vjerovatnocom 0.4. Koliko najmanje gadajanja
# treba da planira pa da vjerovatnoca da ce imati bar 80 pogodaka bude bar 0.9?
# Za nadjeno n izracunati ocekivani broj pogodataka u n gadjanja.

# X~B(n,0.4)  trazi se n tako da P{X>=80}>=0.9

# P{X>=80}=1-P{X<80}=1-P{X<=79}=1-F(79), odnosno 1-pbinom(79, n, 0.4)
# To znaci da trazimo takvo n da je F(79)<=0.1
# Vidimo da je pbinom(79,300,0.4) vec dovoljno malo provjeravamo za koje prvo n
# ce nam trazena vjerovatnoca biti manja od 0.1

n <- function() {
  for (i in 80:300) {
    if (pbinom(79, i, 0.4) <= 0.1)
      return(i)
    
  }
  
}

n() # dobija se broj 223

# Matematicko ocekivanje slucajne velicine X~B(n,p) EX=np

# Ocekivani broj u 223 gadjanja:

f <- function(k, n = 223, p = 0.4) {
  pk <- choose(n, k) * p ^ k * (1 - p) ^ (n - k)
  return(k * pk)
  
}

ocekivanje <- sum(sapply(0:223, f)) # ili samo sum(f(0:223)) !!
ocekivanje  # 89.2 sto je tacno n*p=223*0.4=89.2


# disperzija bi bila: DX=np(1-p)=223*0.4*0.6=53.52


# Ocjenjivanje EX i Dx

# Simuliramo vektor x sa slucajnim brojevima po nekom zakonu raspodjele. Pozivom
# funckije mean(x) dobijamo ocjenu ocekivanja slucajne velicine kojoj odgovara
# taj zakon raspodjele, dok pozivom funckije var(x) dobijamo ocjenu disperzije.

# Npr, imamo slucajnu velicinu iz zadatka 5.

# generisemo slucajan vektor iz B(223,0.4) raspodjele:


x <- rbinom(1000, 223, 0.4)
mean(x)
var(x)

# Uporedite sa tacnim vrijednostima EX i DX.


# Nadjimo sada ocjene za X iz zadatka 4.

s<-sample(-2:2, size = 10000, replace = TRUE, prob = c(rep(1/5,3),1/10,3/10))

mean(s)
var(s)


# Geometrijska raspodjela

# X~G(p) predstavlja broj pokusaja do prvog uspjeha (ukljucujuci i prvi uspjeh),
# pri cemu je vj uspjeha u svakom pojedinacnom gadjanju p, dok je vj neuspjeha
# 1-p. Dakle, vrijednosti koje slucajna vel. X uzima su {1,2,3,...}

# Anlogno sa funkcijama za binomnu, postoje i ugradjene funkcije za geometrijsku
# raspodjelu u R-u. Medjutim, u R-u geometrijska slucajna velicina broji
# pokusaje prije prvog uspjeha sto znaci da su njene vrijednosti {0,1,2,3...}.
# Primijetimo da ce takva slucajna velicina biti geometrijska slucajna velicina
# po nasoj definiciji umanjena za 1, pa cemo u zadacima koristiti ugradjene
# funkcije rgeom, dgeom, itd, pri cemu cemo voditi racuna da korigujemo
# vrijednosti za 1.



# 6. Vjerovatnoca da kosarkas pogodi kos je p=0.7. On gadja sve dok ne pogodi. 

# Izracunati:
# a) vjerovatnocu da kosrkas ima vise od 5 pokusaja
# b) vjerovatnocu da gadja izmedju 3 i 7 puta
# c) vjerovatnocu da je bio paran broj pokusaja
# d) srednji broj pokusaja

# a) P{X>5}=P{X-1>5-1}=P{X-1>4}=1-P{X-1<=4}

1 - pgeom(4, 0.7)

# b) P{3<=X<=7}=P{X<=7}-P{X<3}=P{X-1<=6}-P{X-1<=1}

pgeom(6,0.7)-pgeom(1,0.7)

# ili P{3<=X<=7}=P{X-1=3-1}+P{X-1=4-1}+...+P{X-1=7-1}

sum(dgeom(2:6,0.7))

# c) Napomena: ovdje nam se javlja beskonacna suma pa cemo da nametnemo neku
# granicu. Npr. pgeom(1000,0.7) = 1 sto znaci da je vjerovatnoca da X uzme
# vrijednost vecu od 1000 0 (to se desava zbog zaokruzivanja, teorijski te
# vjerovatnoce su bliske nuli), pa za granicu uzimamo 1000.

# Zbog toga sto gledamo fje za X-1, zapravo racunamo vjerovatnocu da bude
# neparan broj pokusaja

sum(dgeom(seq(from = 1, to = 1000, by = 2),prob = 0.7))

# Zasto je vjerovatnoca da bude neparan broj pokusaja znatno manja od 1/2?



# d) Slicno kao u prethodnom primjeru, ogranicicemo broj vrijednosti na 1000

f <- function(k, p=0.7) {
  pk <- (1 - p) ^ (k - 1) * p
  return(k * pk)
  
}


ocekivanje <- sum(sapply(1:1000 , f))
ocekivanje # 1/428571

# EX=1/p=1/0.7=1/428571


# Zadatak 7 


# Baca se kockica za igru. 
# a) Izracunati ocekivani broj bacanja do pojave svih brojeva.
# b) Ocijeniti ocekivani broj bacanja do pojave svih brojeva.

# (na casu ) X=X1+X2+...+X6

broj <- function() {
  
  
  x<- 1 + sum(sapply(1:5, function(i) rgeom(1, i/6))) + 5
  
  # Moze i ovako:
  
  # x <-
  #   1 + rgeom(1, 5 / 6) + rgeom(1, 4 / 6) + rgeom(1, 3 / 6) + rgeom(1, 2 / 6) +
  #   rgeom(1, 1 / 6) + 5
   
  #!!!!!! Napomena: Na kraju dodajemo 5 zbog razlike u definiciji geometrijske 
  #slucajne velicine koju mi razmatramo i one ugradjene u R-u (kod svakog od 
  #poziva rgeom() dodajemo po 1)
  
  return(x)
  
}

mean(replicate(10000, broj()))



# Zadaci za domaci 

# 1.
# Imamo 15 cedulja po 2 pitanja na svakom. Pitanja se ne ponavljaju. Imamo 
# studenta koji je naucio 25 pitanja. On polaze ispit ako odgovori tacno na oba 
# pitanja ili ako zna jedno pitanje sa cedulje i prvo(!) pitanje sa sledece 
# cedulje. Koja je verovatnoca da student polozi ispit?

#2.
# Bira sa karta iz spila od 52 karte N puta sa vracanjem. Ako se izvuce crvena
# dobije se 10 dinara, u suprotnom se gubi 10. Odrediti verovatnocu da je igrac
# imao bar 60 dinara nakon 20 izvlacenja karte. Napraviti funkciju ocenaZarade
# ciji su argumenti N - broj odabira karte iz spila, n broj ponavljanja igre
# prilikom simulacije. Oceniti verovatnocu iz zadatka simuliranjem (Monte Karlo
# metodom).


# Ideja: 

# Koliko puta mora da bude uspeh da bismo imali bar 60 dinara?
# Moramo da resimo sledecu nejednacinu: x*10+(20-x)*(-10)>=60
# 10x-200+10x>=60
# 20x>=260
# x>=13


# 3.

# Zadat je ispit sa 10 pitanja sa mogucim odgovorima DA/NE. Za prolazak na
# ispitu potrebno je 70% tacnih odgovora. Izracunati:
# (a) vjerovatnocu da student polozi ispit ako nasumicno zaokruzuje ( sto znaci 
# da je vjerovatnoca za DA i NE po 1/2) 
# (b) vjerovatnocu da student ima vise od dva tacna odgovora































 











