话说豆豆花花的学习小组已经办到了第8期。这一期学员异常活跃可爱。今天群里提了一个问题,花花解答了一下。概率题,好玩的很!
题目在此
已知一箱彩色球颜色分布为:红色30%,黄色40%,蓝色20%,黑色10%,随机抓一些球,希望它们中至少有一个是蓝色球的概率不低于90%,那么最少需要抓多少球?
A.6
B.11
C.16
D.25
懵了?来捋捋。
1.问题只涉及到了蓝色,所以把球分两类,蓝色和非蓝色。此处参照生信技能树的jimmy大神名言:文件只有两类,文本和hui(非)文本!
2.不低于,就是≥。
3.逆向思维,至少有一个是蓝色的概率=1-“没有一个是蓝色的概率”。
解题的关键是算出“没有一个是蓝色”的概率。
假设抓取x个球。
1-(1-0.2)^x≥0.9,求x的最小值.
现在事情就是0.8^x≤0.1,求那个x咯。
瞄一眼选项,最多25。好的,那么我们用懒人的办法--R语言来解决一下。
此处居然滋生出花花的笨办法,豆豆和花花各自的新方法!
1.先看花花的笨办法
options和as.character都是为了解决小数点后位数太多的问题。
options(digits = 2)
for (i in 1:25){
print(c(as.character(i),0.8^i))
}
丑哭了
2.再看花花的新方法
杀手锏tidyverse使出来!
library(tidyverse)
x <- data.frame(i=seq(1:25))%>%
mutate(p=0.8^i)
顺便解释一个常见报错:
Error in data.frame(i = seq(1:25)) %>% mutate(p = 0.8^i) :
could not find function "%>%"
没找到管道操作符?其实他属于tidyverse的一个包,加载tidyverse就能解决这个报错。
3.再看豆豆的新方法
options(digits = 2)
i <- 1:25
z <- data.frame(t(rbind(i,sapply(i, function(x) 0.8^x))))
都是生成了一个满足本强迫症的表,然后从里面偶遇一下那个<0.1的数。
好的,那么答案就是11。
你有新方法吗?讲下~
网友评论