# Cas 4 3.11.2017. # Zadatak 1 # Sa vjerovatnocom 1/2 su postavili pare u jedan od 8 sanducica. Otvoreno je # 7 sanducica i nije bilo para. Koja je vjerovatnoca da se nalaze u 8.? # Simulirati taj dogadjaj N puta i pomocu simulacije ocijeniti vjerovatnocu. # H1-pare se nalaze u nekom sanducetu # H2-pare se ne nalaze ni u jednom sanducetu # A- ne nalaze se u otvorenih 7 sanducica # P(H1|A) je bas vjerovatnoca koja nam se trazi # P(H1|A)=P(AH1)/P(A)=1/9 # Iz poslednje formule vidimo da cemo brojati takve dogadjaje gdje se novac # nalazi u 8. sanducetu i dijeliti sa brojem ishoda gdje se novac ili nalazi u # 8. ili ga nema uopste u sanducicima # Mozemo problem da posmatramo i na sledeci nacin: Kako se sa vjerovatnocom 1/2 # stavljamo novac u jedan od 8 sanducica, sa istom vjerovatnocom nece biti novca # u tih 8 sanducica. Uvedemo 8 imaginarnih sanducica koji predstavljaju taj # drugi slucaj. Vjerovatnoca svakog sanducica, bilo da je imaginarni ili # stvarni, bice 1/16. Odavde lako dolazimo do zakljucka da je trazena uslovna # vjerovatnoca 1/9. # u funkciji sample imamo 9 vrednosti, jer smo slucaj da nije uopste u # sanducice nazvali 9 i stoga je verovatnoca tog dogadjaja bas 1/2. # Funkciji sanduce() prosledjujemo broj simulacija N sanduce <- function(N) { q <- sample(1:9, size = N, prob = c(rep(1 / 16, 8), 1 / 2), replace = TRUE) return(sum(q == 8) / sum(q > 7)) } sanduce(100000) # [ Poredjenje zavisnih i nezavisnih dogadjaja ] # Zadatak 2 # Na slucajan nacin biraju se dvije karte iz standardnog spila od 52 karte. Koja # je vjerovatnoca da prva karte nije sa likom ( kralj, dama ili zandar) a da # druga karte nije karta sa likom, ako: # a) vratimo u spil prvu kartu prije izvlacenja druge # b) ne vracamo prvu kartu prije izvlacenja druge # Neka su A i B sledeci dogadjaji: # A- prva izvucena karta nije sa likom # B- druga karta je sa likom # a) U ovom slucaju, kada izvlacimo karte sa vracanjem, A i B su nezavisni # dogadjaji, pa je P(AB)=P(A)P(B)= 40/52 * 12/52 = 0.1775 # b) U slucaju bez vracanja, A i B nisu nezavisni dogadjaji pa vazi: # P(AB)=P(A)P(B|A)= 40/52 * 12/51 = 0.1809 karte <- function(vracanje) { # spil karata s pravimo kao u zadatku sa jednog od prethodnih casova vrijednosti <- c("A", 2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K") # Napomena: Svi elementi vektora ce se pretvoriti u tip prvog, tj. brojevi ce # se pretvoriti tip "character" boje <- c("t", "h", "k", "p") spil <- outer(vrijednosti, boje, FUN = "paste", sep = "") # print(spil) matrica 13x4 s <- sample(spil, 2 , replace = vracanje) prva <- which(spil == s[1]) druga <- which(spil == s[2]) if (prva %% 13 > 0 & prva %% 13 <= 10 & (druga %% 13 > 10 | druga %% 13 == 0)) return(1) else return(0) } # Za domaci: Uradite simulaciju na drugi nacin, tako sto cete zanemariti boju # karata. # Sa vracanjem: r1 <- replicate(1000000, karte(TRUE)) mean(r1) # Bez vracanja: r2 <- replicate(1000000, karte(FALSE)) mean(r2) # posto je razlika u vjerovatnocama mala, aproksimacije nam ne daju dovoljno # jasne rezultate posle malog broja simulacija, zbog toga je dato n=1000000 # Zadatak 3 # Pod pretpostavkom da su verovatnoce radjanja zenske i muske dece jednake, # ispitati nezavisnost sledecih dogadjaja: A - nisu sva deca istog pola, B - # medju decom najvise jedna devojcica. a) u porodici sa troje dece, b) u # porodici sa cetvoro dece. # Za domaci simulacija. # Zadatak 4 # Poceci vjerovatnoce vezuju se za dva poznata mateticara, Paskala i Fermu. # 1654. godine Paskal je pisao Fermi opisujuci kockarski problem. Naime, # francuski plemic Gombaud se kockao i ulagao velike sume novca za odredjene # ishode bacanja kockice. On je resavajuci neka dva problema zakljucio da su mu # vjerovatnoce pobjede 2/3. Posle izvjesnog vremena shvatio je da gubi velike # kolicine novca i pisao je Paskalu, koji je problem proslijedio Fermi. # Problemi se sastoje u sledecem: # 1) Koja je vjerovatnoca da se dobije bar jedna sestica u 4 bacanja kockice? # 2) Bacamo dvije kockice istovremeno 24 puta. Koja je vjerovatnoca da su bar # pale dvije sestice. # 1) 1-(5/6)^4=0.5177469 > 0.5 ( Zasto mozemo da mnozimo ove vjerovatnoce?) # 2) 1-(35/36)^24=0.4914039 < 0.5 sestica <- function() { s <- sample(1:6, 4, replace = TRUE) if (any(s == 6)) return (1) else return(0) # Napomena: U R-u nije potreban return, vraca se poslednji izraz u funkciji, # pa bi ekvivalentan poziv bio: # ifelse(any(s==6), 1 , 0 ) } mean(replicate(10000, sestica())) dupla.sestica <- function() { prva.kockica <- sample(1:6, 24, replace = TRUE) druga.kockica <- sample(1:6, 24, replace = TRUE) if (any(prva.kockica == 6 & druga.kockica == 6)) return(1) else return(0) # Resenje sa for petljom : # for (i in 1:24) { # if (prva.kockica[i] == 6 & druga.kockica[i] == 6) # return(1) # # } # # return(0) } mean(replicate(10000, dupla.sestica())) # Zadatak 4.1: # Da li dva disjunktna dogadjaja A i B (definisana na istom prostoru # vjerovatnoca) sa strogom pozitivnom vjerovatnocom P(A),P(B)>0, mogu da budu # nezavisni dogadjaji? # Zadatak 5 # Iz segmenta [0, 1] se na slucajan nacin biraju dva broja nezavisno jedan od # drugog. Dogadjaj A je da je zbir brojeva manji od 1, a dogadjaj B da je # proizvod brojeva manji od 2/9. Odrediti vjerovatnoce dogadjaj A i B prvo # teorijski, a posle i napisati simulaciju za isto. Ispitati nezavisnost # dogajaja A i B (Monte Karlo metodom). nezavisnost <- function() { indikator.A <- 0 indikator.B <- 0 xy <- runif(2, 0, 1) # dva slucajna broja iz intervala [0,1] if (xy[1] + xy[2] < 1) { indikator.A <- 1 } if (xy[1] * xy[2] < 2 / 9) { indikator.B <- 1 } indikator.presjeka = indikator.A * indikator.B return(c(indikator.A, indikator.B, indikator.presjeka)) } rezultati <- rowMeans(replicate(100000, nezavisnost())) rezultati # Napomena: Kako nam funkcija nezavisnost() vraca vektor sa tri vrijednosti, # pozivom replicate(100000,nezavisnost()) dobijamo matricu 3X100000 rowMeans # primijenjeno na ovu matricu ce da nam da srednju vrijednost po vrstama (suma # svih vrijednosti u jednoj vrsti / n=100000) # Sada hocemo da ispitamo nezavisnost. rezultati[1]*rezultati[2] rezultati[3] # Nije ni priblizno jednako, pa ne mozemo da govorimo o nezavisnoti. # [Slucajno lutanje po pravoj] # Zadatak 6 # Cestita luta po pravoj i pravi jedan korak desno ili lijevo sa vjerovatnocom # 0.5. Ako je pocetno stanje cestice u koordinatnom pocetku, iscrtati # trajektoriju kretanja nakon N koraka. cestica <- function(N) { koraci <- sample(c(-1, 1), N, replace = TRUE) pozicija <- cumsum(koraci) plot(pozicija, type = 'o') } cestica(100) # Zadatak 6 # Slijepa kornjaca se nalazi na 14.5 cm od vode i na slucajan nacin pravi korake # duzine 1cm ka vodi, odnosno od vode (krecuci se po pravoj liniji). Koraci su # medjusobno nezavisni, a vjerovatnoca da ce kornjaca napraviti korak ka vodi je # p, dok je vjerovatnoca da ce napraviti korak od vode 1-p ( 0= p)] <- 1 # Sjetite se trajektorije sa 2. casa i funckije cumsum() trajektorija <- rastojanje + cumsum(koraci) # Ako hocemo da prekinemo kretanje kad kornjaca dodje do vode, tj kad nam # trajektorija presjece nulu: if (!all(trajektorija > 0)) # ili if(any(trajektorija)<=0) trajektorija <- trajektorija[1:which(trajektorija == -0.5)[1]] # Crtamo trajektoriju: #plot(trajektorija, type = "o" , col = "blue") # Za drugi dio zadatka trebaju nam ishodi kod kojih posle N koraka dolazi do # vode ifelse(trajektorija[length(trajektorija)] < 0, 1, 0) # Ovdje vidimo da nije neophodno pisati return, vratice poslednji izraz } # 2) Uzmimo neke konkretne vrijednosti za p i N kornjaca(20, 0.7) # Iskljuciti plot!!! # p>0.5 mean(replicate(1000, kornjaca(1000, 0.7))) # p<0.5 mean(replicate(1000, kornjaca(1000, 0.4))) # Uporedite rezultate sa teorijskim. ### Slucajne velicine ###