전산통계학, 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

TAG