# Zapoctovy program z predmetu Pravdepodobnost a statistika # Glinsky Radoslav # Akademicky rok 2008/2009 set.seed(25121987) #=============================== 1. cast ================================ # nasimulujeme si prichody ludi do stanic predpoludnim # tieto prichody ludi si ulozim do 2 vektorov - pre stanicu A a pre stanicu B vektor_prichodov_A=vector(mode="numeric", length=0) vektor_prichodov_B=vector(mode="numeric", length=0) pom=rexp(1,40) while(pom<360) # 6 hodin (==360 minut), kedy premava metro dopoludnia { vektor_prichodov_A=c(vektor_prichodov_A,pom) pom=pom+rexp(1,40) } pom=rexp(1,30) while(pom<360) { vektor_prichodov_B=c(vektor_prichodov_B,pom) pom=pom+rexp(1,30) } # z nasimulovanych prichodov ludi si vypocitame pocty ludi v kazdom vlaku dopoludnia # tieto pocty si ulozime do vektoru vektor_poctu_ludi_vo_vlaku=vector(mode="numeric", length=180) pom=1 while(pom<=length(vektor_prichodov_A)) { vlak=vektor_prichodov_A[pom] %/%2 # vlak jazdi kazde 2 minuty vektor_poctu_ludi_vo_vlaku[vlak+1]=vektor_poctu_ludi_vo_vlaku[vlak+1] +1 pom=pom+1 } pom=1 while(pom<=length(vektor_prichodov_B)) { vlak=vektor_prichodov_B[pom] %/%2 vektor_poctu_ludi_vo_vlaku[vlak+1]=vektor_poctu_ludi_vo_vlaku[vlak+1] +1 pom=pom+1 } cat("Medzi stanicami B a C prvym dopoludnajsim vlakom islo",vektor_poctu_ludi_vo_vlaku[1]," ludi\n\n") arit_priemer=mean(vektor_poctu_ludi_vo_vlaku) cat("Stredna hodnota (bodovy odhad) poctu ludi v jednom dopoludnajsom vlaku je",arit_priemer,"\n") smerodatna_odchylka=sd(vektor_poctu_ludi_vo_vlaku) pom=qnorm(0.975)*smerodatna_odchylka/sqrt(180) dolna_hranica=arit_priemer-pom horna_hranica=arit_priemer+pom cat("Stredna hodnota (95% intervalovy odhad) poctu ludi v jednom dopoludnajsom vlaku je",dolna_hranica,"-",horna_hranica,"\n\n") png("histogram1.png", 1024, 768); hist(vektor_poctu_ludi_vo_vlaku, freq=FALSE, breaks=20, xlab="pocet ludi v jednom vlaku", ylab="pomer k celkovemu poctu", main="Histogram poctu ludi v jednom dopoludnajsom vlaku"); # do vektoru si pre kazdeho cestujuceho ulozime cas, ktory stravil cakanim na dopoludnajsi vlak pocet_ludi=length(vektor_prichodov_A)+length(vektor_prichodov_B) vektor_cakania_na_vlak=vector(mode="numeric", length=pocet_ludi) pom=1 while(pom<=length(vektor_prichodov_A)) { vektor_cakania_na_vlak[pom]=vektor_prichodov_A[pom] %%2 # vlak jazdi kazde 2 minuty pom=pom+1 } pom2=1 while(pom2<=length(vektor_prichodov_B)) { vektor_cakania_na_vlak[pom]=vektor_prichodov_B[pom2] %%2 # vlak jazdi kazde 2 minuty pom=pom+1 pom2=pom2+1 } png("histogram2.png", 1024, 768); hist(vektor_cakania_na_vlak, freq=FALSE, breaks=25, xlab="cas, ktory cestujuci cakal", ylab="pomer k celkovemu poctu", main="Histogram doby cakania cestujuceho na dopoludnajsi vlak"); cat("Navrhovana kapacita jedneho vlaku je", qpois(0.98,arit_priemer), "ludi\n\n") #=============================== 2. cast ================================ # nasimulujeme si prichody ludi do stanic C popoludni # tieto prichody ludi si ulozim do vektoru vektor_prichodov_C=vector(mode="numeric", length=pocet_ludi) vektor_prichodov_C = sort(runif(pocet_ludi,0,480)) # spocitame casove rozdiely medzi prichodmi ludi vektor_casovych_rozdielov=vector(mode="numeric", length=pocet_ludi) pom=1 pom_cas=0 while(pom<=pocet_ludi) { rozdiel=vektor_prichodov_C[pom]-pom_cas vektor_casovych_rozdielov[pom]=rozdiel pom_cas=vektor_prichodov_C[pom] pom=pom+1 } png("histogram3.png", 1024, 768); hist(vektor_casovych_rozdielov, freq=FALSE, breaks=50, xlab="casovy rozdiel medzi prichodmi", ylab="pomer k celkovemu poctu", main="Histogram doby medzi prichodmi ludi na stanicu C"); # z nasimulovanych hodnot prichodov ludi si vypocitame pocty ludi v kazdom vlaku popoludni # tieto pocty si ulozime do vektoru vektor_poctu_ludi_vo_vlaku2=vector(mode="numeric", length=240) pom=1 while(pom<=length(vektor_prichodov_C)) { vlak=vektor_prichodov_C[pom] %/%2 # vlak jazdi kazde 2 minuty vektor_poctu_ludi_vo_vlaku2[vlak+1]=vektor_poctu_ludi_vo_vlaku2[vlak+1] +1 pom=pom+1 } arit_priemer=mean(vektor_poctu_ludi_vo_vlaku2) cat("Stredna hodnota (bodovy odhad) poctu ludi v jednom popoludnajsom vlaku je",arit_priemer,"\n") smerodatna_odchylka=sd(vektor_poctu_ludi_vo_vlaku2) pom=qnorm(0.975)*smerodatna_odchylka/sqrt(240) dolna_hranica=arit_priemer-pom horna_hranica=arit_priemer+pom cat("Stredna hodnota (95% intervalovy odhad) poctu ludi v jednom popoludnajsom vlaku je",dolna_hranica,"-",horna_hranica,"\n") # vypocitame si, kolko musel cakat kazdy cestujuci na stanici C vektor_cakania_na_vlak_C=vector(mode="numeric", length=pocet_ludi) pom=1 while(pom<=length(vektor_prichodov_C)) { vektor_cakania_na_vlak_C[pom]=vektor_prichodov_C[pom] %%2 # vlak jazdi kazde 2 minuty pom=pom+1 } # vypocitame si celkovu dobu cakania pre kazdeho cestujuceho vektor_celkovych_dob_cakania=vector(mode="numeric", length=pocet_ludi) pom=1 while(pom<=length(vektor_cakania_na_vlak)) { vektor_celkovych_dob_cakania[pom]=vektor_cakania_na_vlak_C[pom] + vektor_cakania_na_vlak[pom] pom=pom+1 } png("histogram4.png", 1024, 768); hist(vektor_celkovych_dob_cakania, freq=FALSE, breaks=25, xlab="celkovy cas, ktory cestujuci cakal", ylab="pomer k celkovemu poctu", main="Histogram celkovych dob cakania cestujuceho za jeden den");