# Lab 04 copy # Q1 - Run 10 times and count heads vs tails sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) sample(c("Heads", "Tails"), 1) # ******************************* FlipOnce = function() { headOrTail<-sample(c("Heads", "Tails"), 1) return(headOrTail) } CoinResults = function(n) { coinList<-c(1:n) for (i in 1:n) { coinList[i]=FlipOnce() } return(coinList) } ProbHeads=function(n) { coinList<-CoinResults(n) numHeads<-sum(coinList=="Heads") return(numHeads / n) } # Q2 Rewrite your CoinResults(n) function in the script window without using # loops CoinResults = function(n) { coinList<-sample(c("Heads", "Tails"), n, repl=T) return(coinList) } ProbHeads = function(n) { coinList<-CoinResults(n) numHeads<-sum(coinList=="Heads") return(numHeads / n) } # Q3 Write a function called MaxAndMinHeads(m,n) that calls ProbsHeads(m) n # times, and returns the maximum and minimum probability of obtaining heads. MaxAndMinHeads = function(m, n) { results<-c(1:n) for (i in 1:n) { results[i] = ProbHeads(m) } return(c(min(results), max(results))) } # Q4 Write a function called RollDie(n) that simulates rolling a die n times, # and returns a bar plot RollDie = function(n) { rolls<-sample(c(1,2,3,4,5,6), n, repl=T) title<-paste("Distribution of outcomes of", n, "die rolls", sep=" ") plot<-barplot(table(rolls), main=title) return(plot) } # Q5 Write a function called RollSomeDice(n,m) that simulates rolling m dice n # times, and each time counts the number of 3’s obtained in the m dice. RollSomeDice = function(n, m) { threes<-c(1:n) for (i in 1:n) { rolls<-sample(c(1,2,3,4,5,6), m, repl=T) threes[i]<-sum(rolls==3) } title<-paste("Number of 3's obtained in rolling", m, "dice", sep=" ") plot<-barplot(table(threes), main=title) return(plot) } # Q6 Write a function DrawCardsWithReplacement(n,m) that simulates drawing m # cards from a 52-card deck with replacement, n times. DrawCardsWithReplacement = function(n, m) { red_counts <- c(1:n) for (i in 1:n) { draws <- sample(c(0,1), m, replace = TRUE) red_counts[i] <- sum(draws== 1) } title<-paste("Number of red cards in", m, "draws (with replacement)", sep=" ") plot<-barplot(table(red_counts), main = title, xlab = "Number of red cards", ylab = "Frequency") return(plot) } # Q7 Now write a function DrawCardsWithoutReplacement(n,m) # that simulates drawing m cards from a 52-card deck without replacement, # n times. For each draw, record the number of red cards. DrawCardsWithoutReplacement = function(n, m) { deck <- c(rep(1,26), rep(0,26)) red_counts <- c(1:n) for (i in 1:n) { draws <- sample(deck, m, replace = FALSE) red_counts[i] <- sum(draws == 1) } title <- paste("Number of red cards in", m, "draws (without replacement)") plot <- barplot(table(red_counts), main = title, xlab = "Number of red cards", ylab = "Frequency") return(plot) } # Lab 7 # Q1 DiceMeans <- function(n, m) { means <- c(1:n) for (i in 1:n) { rolls<-sample(c(1,2,3,4,5,6), m, repl=T) means[i] = mean(rolls) } title<-paste("Means for", n, "rolls of", m, "dice", sep=" ") plot<-barplot( table(means), main=title ) return(plot) }