Question 4:

df = data.frame(alpha = letters)
vowels = c('a', 'e', 'i', 'o', 'u', 'y')

for (i in 1:nrow(df)) {
  if (df[i,"alpha"] %in% vowels) {
    #vowel probs
    df$vowel[i] = 1
    df$prob[i] = .01
  } else {
    #consonant probs
    df$vowel[i] = 0
    df$prob[i] = .047
  }
  #probability win with i
  df$prob.win[i] = (1 / i^2)
  #joing probability of getting letter i and winning
  df$h.win[i] = df[i, "prob"] * df[i, "prob.win"]
}
#normalize h.win
df$h.win = df$h.win / sum(df$h.win)
#sanity check
sum(df$h.win)
## [1] 1
names(df)
## [1] "alpha"    "vowel"    "prob"     "prob.win" "h.win"
barplot(df$h.win, col="blue", names.arg=letters,
        main = "p(h | win)")

vowel.indices = which(df[,"vowel"] == 1)
cons.indices = which(df[,"vowel"] != 1)
sum(df[vowel.indices, "h.win"])
## [1] 0.292239
sum(df[cons.indices, "h.win"])
## [1] 0.707761