전산통계학, 2020 중간고사
코딩 공부/R-전산 통계학 2020. 10. 21. 09:08해당 답안 또한 필자가 문제를 보고 직접 푼 것이기 때문에 100% 정확한 답이라고 할 수 없습니다.
그렇기 때문에 참고용으로만 보시면 좋을 것 같습니다.
1번) 700의 소인수 중에서 짝수에 해당하는 인수의 갯수와 합, 그리고 평균을 구하세요 (5점)
# 1
answer <- c() ; find <- list()
x <- function(n) {
for (i in 1:n) {
if(n%%i==0&i%%2==0) {answer[i] <- i}
}
y <- sort(answer)
find[[1]] <- length(y)
find[[2]] <- sum(y)
find[[3]] <- mean(y)
names(find) <- c("갯수","합","평균")
find
}
x(700)
2번) c(20:400) 중에서 '20의 배수' 갯수를 구하는 프로그램 짜세요 (5점)
# 2
x=c(20:400)
f <- function(n){
length(n[n%%20==0])
}
f(x)
3번) c(20:400) 중에서 20의 배수는 뽑지만, 40의 배수는 뽑지 않도록 프로그램 짜세요 (5점)
# 3
x=c(20:400)
f <- function(n){
for (i in 20:400) {
if((i%%40==0)){next}
else if ((i%%20)==0){print(i)}
}
}
f(x)
4번) x=matrix(c(1:16), nr=4, nc=4) 의 행렬을 반시계 방향으로 90도 회전하게끔 만드는 프로그램 짜세요 (6점)
# 4
X = matrix(1:16,4)
F <- function(mat){
turn <- matrix(NA,4,4)
turn[4,] <- X[,1]
turn[3,] <- X[,2]
turn[2,] <- X[,3]
turn[1,] <- X[,4]
turn
}
X
F(X)
5번) x=matrix(c(1:121), nr=11, nc=11) 의 행렬에서 'ㄷ=0' 이 되게끔 만드세요 (7점)
# 5
M=matrix(1:121,11)
n=sqrt(length(M))
for(i in 1:n){
for(j in 1:n){
if(i==1|i==11){M[i,j] <- 0}
else if(j==1){M[i,j] <- 0}
}
}
M
6번) x=matrix(c(1:121), nr=11, nc=11) 의 행렬에서 'N=0' 이 되게끔 만드세요 (7점)
# 6
M=matrix(1:121,11)
n=sqrt(length(M))
for(i in 1:n){
for(j in 1:n){
if(j==1|j==11){M[i,j] <- 0}
else if(i==j){M[i,j] <- 0}
}
}
M
7번) 문제는 세 개입니다, 제시하는 문제에 대하여 올바른 값을 구하세요
(a). (x-10)/5 ~ Z(0,1) 의 분포를 따른다고 하자, P(7.8<X<11.25) 값을 구하세요
(b). P(X<x0)=0.82 에 해당하는 x0 point 를 찾으세요
(c). f(X=8)+f(X=11) 값을 구하세요
(각각 1점, 2점, 2점)
# 7
#(x-10)/5 ~ Z(0,1)
#P(7.8<X<11.25) => P(-0.44<Z<0.25)
pnorm(0.25)-pnorm(-0.44) #0.2687378
# P(X<x0)=0.82
x0 <- qnorm(0.82,10,5) # x0=14.57683
x0
#f(X=8)+f(X=11)
dnorm(8,10,5)+dnorm(11,10,5) #0.1518626