# Luento 28.9.11 # Lantinheitto # Pelataan "kruunua ja klaavaa", heitetään harhatonta lanttia ############# #Esimerkki 2.10 ############# # Pekka voittaa yhden euron, kun kruunu (=1) ja häviää yhden (-1), kun klaava n<-20 sample(c(-1,1), n, replace = TRUE) # valitaan satunnaisotos palauttaen luvuista -1,1 eli rahanheitto, # kun kruunu=1 ja klaava=-1. sum(sample(c(-1,1), n, replace = TRUE)) # Laskee lukujen summan. Jos summa>0, niin kruunut voitolla. ############ n<-20 v<-sample(c(-1,1), n, replace = TRUE) y<-cumsum(v) # Kumulatiivinen summa z<-as.numeric(y>0) # z<-as.numeric(y>=0) ### # Edellä olevat komennot yhdellä rivillä #################### n<-20 y<-cumsum(sample(c(-1,1), n, replace = TRUE)); sum(as.numeric(y>=0)) ## n<-20; x<-1:20 plot(x,cumsum(sample(c(-1,1), n, replace = TRUE)),ylim=c(-10,10),xlim=c(0,n),type="b");abline(h=c(0)) # abline(h=c(0),lty=3) # Todennäköisyysfunktio n<-20 x<-seq(-n,n, 2) y<-choose(n,(n+x)/2)*2^(-n) plot(x,y,type="h") # Kuinka usein voitolla cumsum(sample(c(-1,1), n, replace = TRUE) sum(as.numeric(cumsum(sample(c(-1,1), n, replace = TRUE))>0)) # Kruunun suhteellinen frekvenssi # 1=kruunu, 0=klaava sample(c(0,1), n, replace = TRUE) #suhteellinen frekvenssi sum(sample(c(0,1), n, replace = TRUE))/n ########## # Suhteellinen frekvenssi heittojen lukumäärän funktiona ########## Suhtfr <- function(n) # Heitetään rahaa n kertaa; Lasketaan kruunujen (1) suht.fr # jokaisen heiton jälkeen { x<-sample(c(0,1), n, replace = TRUE) x<-cumsum(x); i<-1:n; x<-x/i return(x) } # Plotataan suhteellinen frekvenssi n<-100 par(mfrow=c(2,2)) plot(1:n,Suhtfr(n),ylim=c(0,1),type="l",axes=F) axis(2,c(0,0.2,0.4,0.5,0.6,0.8,1)) axis(1,seq(0,n,n/10)) abline(h=c(0.5),lty=3) # Esimerkki: Symmetrinen satunnaiskävely n<-40 # Reitin pituus 40 askelta x<-0:40 # Ajankohdat par(mfrow=c(2,2)) z<-sample(c(-1,1), n, replace = TRUE) # valitaan satunnaisotos palauttaen luvuista -1,1: eli # # voittaa tai häviää (kruunu=1 ja klaava=-1). y<-c(0,cumsum(z)) ## Kumulatiiviset summat. Jos summa>0, niin "kruunut" voitolla. plot(x,y,type="o",axes=T) # plot(0:40,y,type="o",axes=T) abline(h=c(0),lty=3) ############ par(mfrow=c(2,2)) z<-sample(c(-1,1), n, replace = TRUE);y<-c(0,cumsum(z)) plot(x,y,type="o",axes=T);abline(h=c(0),lty=3)