네이버 지식인에서 질문한 내용이다.
R에서 난수를 이용하여 동전의 앞면이 나올 확률을 구하는 코드 좀 알려 주세요 RStudio 사용합니다!
sample 함수의 복원추출 방식으로 간단하게 함수를 작성 하여, 확률을 계산 하였고,
여러 회 던졌을때의 분포 그래프도 그렸다.
# 앞면이 "0" 이고 뒷면이 1 일때
coinDie = function(n){
dist <- sample(0:1, n, replace = T)
t = sum(dist ==0)
return(t/ n)
}
# 10번 던졌을때의 확률
coinDie(10)
## [1] 0.5
# 100번 던졌을때의 확률
coinDie(100)
## [1] 0.42
# 1000번 던졌을때의 확률
coinDie(1000)
## [1] 0.504
# 10000번 던졌을때의 확률
coinDie(10000)
## [1] 0.5023
# 100000번 던졌을때의 확률
coinDie(100000)
## [1] 0.50124
for(i in 1:100){
n = 1.1^i
n = round(n)
# print( paste0(n,"번 던젔을때 확률 : ", round(coinDie(n),4)))
temp <- data.frame(n, prof = round(coinDie(n),4))
if(i == 1){
df = temp
} else {
df = rbind(df,temp)
}
}
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
df %>%
filter(n >3) %>%
ggplot(aes(n, prof)) +
geom_line(col = "red")
댓글 없음:
댓글 쓰기