#. R을 이용하여 다음을 계산하여라.

  • $2^{-5}+2^{3}$
2^(-5) + 2^3
[1] 8.03125
  • $\sqrt{33}$
sqrt(33)
[1] 5.744563
  • $\sum_{k=1}^{100} \frac{1}{k^2+2k+1}$ㅁㅁ
k = c(1:100)
k
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
 [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
 [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
 [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
 [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
 [91]  91  92  93  94  95  96  97  98  99 100
sum(1/(k^2+2*k+1))
[1] 0.6350819
  • ...

#. 아래와 같은 수열을 만들어라.

  • $(1,3,5,...,101)$
seq(1,101,2)
 [1]   1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  33  35  37
[20]  39  41  43  45  47  49  51  53  55  57  59  61  63  65  67  69  71  73  75
[39]  77  79  81  83  85  87  89  91  93  95  97  99 101
  • ...

#. 아래와 같은 함수를 선언하라. $x=1,2,3$ 에 대하여 주어진 함수의 결과값을 출력하라.

  • $f(x)=x^2$
f <- function(x){
    x^2
}
x = c(1:3)
f(x)
[1] 1 4 9

#. 아래중 옳은것은?

(a) $e^x= \sum_{n=0}^{\infty} \frac{x^n}{n!}$

(b) $e^x= 1+x+x^2+x^3+\dots $

(c) $e^x= 1-(x-1)+(x-1)^2-(x-1)^3+ \dots $

(풀이)

f<-function(x,N){
    a<-c()
    a[1]=x
    for(n in 2:N) a[n]=a[n-1]*x/n
    sum(a)+1
}
g<-function(x,N){
    a<-c()
    a[1]=x
    for(n in 2:N) a[n]=a[n-1]*x 
    sum(a)+1
}
h<-function(x,N){
    a<-c()
    a[1]= -(x-1)
    for(n in 2:N) a[n]=a[n-1]*(1-x)
    sum(a)+1
}
x=2
for (k in 5:20)
    print(c(exp(x)-f(x,k) , exp(x)-g(x,k), exp(x)-h(x,k)))
[1]   0.1223894 -55.6109439   7.3890561
[1]    0.03350054 -119.61094390    6.38905610
[1]  8.103718e-03 -2.476109e+02  7.389056e+00
[1]  1.754512e-03 -5.036109e+02  6.389056e+00
[1]  3.435769e-04 -1.015611e+03  7.389056e+00
[1]  6.138994e-05 -2.039611e+03  6.389056e+00
[1]  1.008322e-05 -4.087611e+03  7.389056e+00
[1]  1.532098e-06 -8.183611e+03  6.389056e+00
[1]  2.165414e-07 -1.637561e+04  7.389056e+00
[1]  2.860474e-08 -3.275961e+04  6.389056e+00
[1]  3.546512e-09 -6.552761e+04  7.389056e+00
[1]  4.142349e-10 -1.310636e+05  6.389056e+00
[1]  4.573142e-11 -2.621356e+05  7.389056e+00
[1]  4.786394e-12 -5.242796e+05  6.389056e+00
[1]  4.760636e-13 -1.048568e+06  7.389056e+00
[1]  4.529710e-14 -2.097144e+06  6.389056e+00
  • $x=2$일때: $k$가 커질수록 $exp(x) \approx f(x,k)$ 이지만 다른것은 그렇지 않음
x=3
for (k in 5:20)
    print(c(exp(x)-f(x,k) , exp(x)-g(x,k), exp(x)-h(x,k)))
[1]    1.685537 -343.914463   41.085537
[1]     0.6730369 -1072.9144631   -22.9144631
[1]     0.2391084 -3259.9144631   105.0855369
[1]  7.638514e-02 -9.820914e+03 -1.509145e+02
[1]  2.214407e-02 -2.950391e+04  3.610855e+02
[1]  5.871745e-03 -8.855291e+04 -6.629145e+02
[1]  1.433839e-03 -2.656999e+05  1.385086e+03
[1]  3.243623e-04 -7.971409e+05 -2.710914e+03
[1]  6.832928e-05 -2.391464e+06  5.481086e+03
[1]  1.346506e-05 -7.174433e+06 -1.090291e+04
[1]  2.492217e-06 -2.152334e+07  2.186509e+04
[1]  4.348086e-07 -6.457006e+07 -4.367091e+04
[1]  7.173653e-08 -1.937102e+08  8.740109e+04
[1]  1.122453e-08 -5.811307e+08 -1.747429e+05
[1]  1.669996e-09 -1.743392e+09  3.495451e+05
[1]  2.368168e-10 -5.230177e+09 -6.990309e+05
x=10
for (k in 5:50)
    print(c(exp(x)-f(x,k) , exp(x)-g(x,k), exp(x)-h(x,k)))
[1]  20548.80 -89084.53  75170.47
[1]    19159.91 -1089084.53  -456270.53
[1]     17175.78 -11089084.53   4326698.47
[1]      14695.62 -111089084.53  -38720022.53
[1]  1.193989e+04 -1.111089e+09  3.487005e+08
[1]  9.184161e+03 -1.111109e+10 -3.138084e+09
[1]  6.678950e+03 -1.111111e+11  2.824298e+10
[1]  4.591274e+03 -1.111111e+12 -2.541866e+11
[1]  2.985370e+03 -1.111111e+13  2.287679e+12
[1]  1.838295e+03 -1.111111e+14 -2.058911e+13
[1]  1.073579e+03 -1.111111e+15  1.853020e+14
[1]  5.956311e+02 -1.111111e+16 -1.667718e+15
[1]  3.144854e+02 -1.111111e+17  1.500946e+16
[1]  1.582933e+02 -1.111111e+18 -1.350852e+17
[1]  7.608695e+01 -1.111111e+19  1.215767e+18
[1]  3.498377e+01 -1.111111e+20 -1.094190e+19
[1]  1.541083e+01 -1.111111e+21  9.847709e+19
[1]  6.514037e+00 -1.111111e+22 -8.862938e+20
[1]  2.645867e+00 -1.111111e+23  7.976644e+21
[1]  1.034129e+00 -1.111111e+24 -7.178980e+22
[1]  3.894339e-01 -1.111111e+25  6.461082e+23
[1]  1.414743e-01 -1.111111e+26 -5.814974e+24
[1]  4.963739e-02 -1.111111e+27  5.233476e+25
[1]  1.683850e-02 -1.111111e+28 -4.710129e+26
[1]  5.528535e-03 -1.111111e+29  4.239116e+27
[1]  1.758548e-03 -1.111111e+30 -3.815204e+28
[1]  5.424228e-04 -1.111111e+31  3.433684e+29
[1]  1.623837e-04 -1.111111e+32 -3.090315e+30
[1]  4.722033e-05 -1.111111e+33  2.781284e+31
[1]  1.334876e-05 -1.111111e+34 -2.503156e+32
[1]  3.671161e-06 -1.111111e+35  2.252840e+33
[1]  9.829419e-07 -1.111111e+36 -2.027556e+34
[1]  2.563938e-07 -1.111111e+37  1.824800e+35
[1]  6.519986e-08 -1.111111e+38 -1.642320e+36
[1]  1.617445e-08 -1.111111e+39  1.478088e+37
[1]  3.918103e-09 -1.111111e+40 -1.330279e+38
[1]  9.276846e-10 -1.111111e+41  1.197252e+39
[1]  2.182787e-10 -1.111111e+42 -1.077526e+40
[1]  5.093170e-11 -1.111111e+43  9.697737e+40
[1]  1.455192e-11 -1.111111e+44 -8.727964e+41
[1]  3.637979e-12 -1.111111e+45  7.855167e+42
[1]  3.637979e-12 -1.111111e+46 -7.069650e+43
[1]  3.637979e-12 -1.111111e+47  6.362685e+44
[1]  3.637979e-12 -1.111111e+48 -5.726417e+45
[1]  3.637979e-12 -1.111111e+49  5.153775e+46
[1]  3.637979e-12 -1.111111e+50 -4.638398e+47

답: (a)

#. 다음을 읽고 물음에 답하라.

다음은 어느 회사의 연봉에 대한 규정이다.

(가) 입사 첫째 해 연봉은 $a$원이고, 입사 19년째 해까지의 연봉은 해마다 직전 연봉에서 8%씩 인상된다.

(나) 입사 20년째 해부터의 연봉은 입사 19년째 해 연봉의 2/3로 한다.

이 회사에 입사한 사람이 28년동안 근무하여 받는 연봉의 총합은?

sal<-c()
sal[1]<-1
for(i in 2:19){
    sal[i] = sal[i-1]*1.08
}
sal
 [1] 1.000000 1.080000 1.166400 1.259712 1.360489 1.469328 1.586874 1.713824
 [9] 1.850930 1.999005 2.158925 2.331639 2.518170 2.719624 2.937194 3.172169
[17] 3.425943 3.700018 3.996019
for(i in 20:28){
    sal[i] = sal[19]*2/3
}
sal
 [1] 1.000000 1.080000 1.166400 1.259712 1.360489 1.469328 1.586874 1.713824
 [9] 1.850930 1.999005 2.158925 2.331639 2.518170 2.719624 2.937194 3.172169
[17] 3.425943 3.700018 3.996019 2.664013 2.664013 2.664013 2.664013 2.664013
[25] 2.664013 2.664013 2.664013 2.664013
sum(sal)
[1] 65.42238

#. 다음 문장을 읽고 참거짓을 판단하시오.

  • _a는 변수이름으로 가능하다.
_a <- 1
Error in parse(text = x, srcfile = src): <text>:1:1: 예상하지 못한 입력입니다.
1: _
    ^
Traceback:
  • ...

# 다음을 잘 읽고 시각화 하라.

  • 두점 $(1,2)$, $(1.1,2.1)$를 붉은 점으로 각각 시각화 하라.

  • 동일한 플랏에 $(-1,-2)$, $(-1.1,-2.1)$을 푸른점으로 각각 시각화 하라.

출력예시

# 볼링공의 선택

A,B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다. 또한 같은 무게의 공이 여러개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다. 예를들어 N이 5이고, M이 3이며 각각의 무게가 차례대로 1,3,2,3,2일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여됩니다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같습니다.

(1번,2번), (1번,3번), (1번,4번), (1번,5번), (2번,3번), (2번,5번), (3번,4번), (4번,5번)

결과적으로 두 사람이 공을 고르는 경우의 수는 8가지입니다. N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하는 프로그램을 작성하세요.

- 입력예시

입력
5 3 
1 3 2 3 2 

출력
8
a=c(1,3,2,3,2)
A=rep(0,25*2)
dim(A)=c(25,2)
A
      [,1] [,2]
 [1,] 0    0   
 [2,] 0    0   
 [3,] 0    0   
 [4,] 0    0   
 [5,] 0    0   
 [6,] 0    0   
 [7,] 0    0   
 [8,] 0    0   
 [9,] 0    0   
[10,] 0    0   
[11,] 0    0   
[12,] 0    0   
[13,] 0    0   
[14,] 0    0   
[15,] 0    0   
[16,] 0    0   
[17,] 0    0   
[18,] 0    0   
[19,] 0    0   
[20,] 0    0   
[21,] 0    0   
[22,] 0    0   
[23,] 0    0   
[24,] 0    0   
[25,] 0    0   
k=1
for (i in 1:5){
    for (j in 1:5){
        A[k,]<-c(a[i],a[j])
        k=k+1
    }
}
A
      [,1] [,2]
 [1,] 1    1   
 [2,] 1    3   
 [3,] 1    2   
 [4,] 1    3   
 [5,] 1    2   
 [6,] 3    1   
 [7,] 3    3   
 [8,] 3    2   
 [9,] 3    3   
[10,] 3    2   
[11,] 2    1   
[12,] 2    3   
[13,] 2    2   
[14,] 2    3   
[15,] 2    2   
[16,] 3    1   
[17,] 3    3   
[18,] 3    2   
[19,] 3    3   
[20,] 3    2   
[21,] 2    1   
[22,] 2    3   
[23,] 2    2   
[24,] 2    3   
[25,] 2    2   
vec1<-c()
vec2<-c()
for(i in 1:25){
    vec1[i] <- A[i,1] != A[i,2]
    vec2[i] <- A[i,1] > A[i,2]
}
vec1
 [1] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE
[13] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE  TRUE
[25] FALSE
vec2
 [1] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
[13] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
[25] FALSE
sum(vec1 & vec2)
[1] 8