1. R을 이용하여 다음을 계산하여라. (3점)

(a) $2^{-5}+2^{3}$

(b) $\sqrt{33}$

(c) $\sum_{k=1}^{100} \frac{1}{k^2+2k+1}$

2. 다음을 잘 읽고 물음에 답하라. (2점)

(a) 아래와 같은 수열을 생성하라.

$$x=(-10,-9.5,-9.0,...,9.0,9.5,10)$$

(b) 생성된 수열에 대하여 아래를 만족하는 $y$를 계산하라.

$$y=\begin{cases} x & |x|>5 \\ 0 & |x| \leq 2 \\ 5 & o.w. \end{cases}$$

3. $x=(-10,-9,-8,\dots,8,9,10)$에 대하여 $h(g(f(x)))$의 계산결과를 구하는 코드를 작성하라. (10점)

단, $f(x)$,$g(x)$, $h(x)$의 정의는 각각 아래와 같다.

  • $f(x)=2x+3 $
  • $g(x)=\frac{e^x}{1+e^x}$
  • $h(x)=max(x,0)$

4. 아래중 옳은것은? (O / X 로 답안지를 쓰고 답의 근거가 되는 코드를 작성할것) (10점)

(a) $1= \frac{1}{2}+\frac{1}{4} +\frac{1}{8} \dots $

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

5. 다음을 읽고 물음에 답하라. (10점)

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

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

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

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

6. 다음 문장을 읽고 참거짓을 판단하시오. (10점)

(a) _a는 변수이름으로 가능하다.

(b) 벡터의 원소는 수치형(numeric)만 가능하다.

(c) 논리형(logical)변수는 수치형 변수로 변환할 수 없다.

(d) R에서 {}는 ()로 바꿀 수 있다.

7. 100개의 라커 (15점)

복도에 100개의 라커가 있다. 복도를 어떤 남자가 100개의 라커 문을 전부 연다. 그리고 나서 짝수 번호의 라커를 전부 닫는다. 그 다음에는 번호가 3의 배수인 라커를 순서대로 찾아다니며 열려 있으면 닫고, 닫혀 있으면 연다. 그 다음에는 번호가 4의 배수인 라커를 순서대로 찾아다니며 열려있으면 닫고, 닫혀있으면 연다. 이후에 5의 배수, 6의 배수 .. 인 라커를 순서대로 찾아다니며 행동을 반복한다. 이런식으로 복도를 100번 지나가면 열린 라커의 문은 몇개가 되겠는가?

8. 무궁화 꽃이 피었습니다. (25점)

총 456명의 참가자가 '무궁화 꽃이 피었습니다' 게임에 참가한다. 기본적인 게임의 규칙은 아래와 같다.

  • 술래는 총 10회간 벽을 보고 '무궁화 꽃이 피었습니다' 를 외친다.

  • 참가자는 술래가 있는 곳 까지 이동해야 살 수 있다.

  • 술래는 벽을 보고 '무궁화 꽃이 피었습니다'를 외치다가 구호가 끝남과 동시에 뒤를 돌아본다. 이때 움직이는 사람은 죽는다

따라서 참가자는 술래가 벽을 보고 '무궁화 꽃이 피었습니다'를 외치는 동안만 이동할 수 있다. 욕심을 부려 더 이동하고자 하면 죽을 수 있다. 반대로 죽는 것을 지나치게 두려워한 나머지 매턴마다 조금씩만 이동한다면 10회의 제한횟수 내에 술래에게 도달하지 못하여 죽는다.

게임환경과 관련된 세부적인 설정은 아래와 같다.

  • 술래와 참가자의 거리는 35이다.

  • 술래는 처음 벽을 보고 $x$초간 무궁화 꽃이 피었습니다를 외친다.

  • 모든 참가자는 1초에 거리1이상 움직일 수 없다고 가정한다. (예를들어 2.4초 동안은 최대 2.4의 거리를 이동할 수 있다. 반면 이동을 원치않으면 0의 거리만큼 움직이므로 0~2.4사이의 거리를 움직일 수 있다)

술래와 참가자에 대한 설정값은 아래와 같다.

술래에 대한 설정값

  • 처음에는 술래가 10초간 무궁화 꽃이 피었습니다를 외친다.

  • 그 다음에는 술래가 9.5초간 무궁화 꽃이 피었습니다를 외친다.

  • 그 다음에도 0.5초씩 구호를 외치는 시간을 줄인다. 이것을 10회 반복한다.

참가자에 대한 설정값

  • 처음에는 참가자가 "본인의번호/100"을 계산하여 나온 숫자만큼 움직인다. 즉 10번 참가자는 0.1의 거리를 움직이고 456번 참가자는 4.56의 거리를 움직인다.

  • 그 다음은 처음에 본인이 이동했던 거리에 1씩 더하여 움직인다. 즉 10번 참가자는 1.1의 거리를 움직이고 456번 참가자는 5.56의 거리를 움직인다.

- 예시2

300번 참가자의 경우 아래와 같이 이동하므로

1회 2회 3회 4회 5회 6회
술래의 외침시간 10 9.5 9.0 8.5 8.0 7.5
참가자의 이동폭 3 4 5 6 7 7.5
참가자의 총 이동거리 3 7 12 18 25 32.5

생존할 수 없다. (6회에서 32.5까지 이동후 사망)

- 예시2

350번 참가자의 경우 아래와 같이 이동하므로

1회 2회 3회 4회 5회 6회
술래의 외침시간 10 9.5 9.0 8.5 8.0 7.5
참가자의 이동폭 3.5 4.5 5.5 6.5 7.5 7.5
참가자의 총 이동거리 3.5 8 13.5 20 27.5 35

생존 할 수 있다. (6회에서 정확하게 7.5초간 이동하고 살아남는다)

- 예시3

400번 참가자의 경우 아래와 같이 이동하므로

1회 2회 3회 4회 5회 6회
술래의 외침시간 10 9.5 9.0 8.5 8.0 7.5
참가자의 이동폭 4 5 6 7 8 5
참가자의 총 이동거리 4 9 15 22 30 35

생존 할 수 있다. (6회에서 5초간만 이동하면 35만큼 이동하므로 살아남는다)

(a) 1번, 67번, 218번, 456번 참가자의 생존여부를 확인하는 함수를 작성하라.

(b) 전체 생존자중 몇명이 살아남는지 계산하라.

9. 다음을 잘 읽고 시각화 하라. (15점)

다음은 인터넷에서 어떠한 자료를 다운받아 매트릭스로 저장하는 코드이다.

df=read.csv("https://raw.githubusercontent.com/guebin/2021IR/master/_notebooks/round2.csv")
mat=as.matrix(df)

매트릭스는 mat이라는 변수에 저장되어 있다.

(a) mat의 첫번째 열을 $x$, 두번째열을 $y$로 생각하고 plot함수를 통하여 아래와 같은 산점도를 그려라.

(b) 매트릭스의 첫번째 행(first row)를 출력하는 코드를 작성하라.

- 힌트: 출력결과는 (12,313)이 나와야 한다.

(c) (b)의 결과에 아래의 연산을 수행하는 코드를 작성하라.

$$ \begin{bmatrix} 0 & -1 \\ -1 & 0 \end{bmatrix} \begin{bmatrix} 12 \\ 313 \end{bmatrix} $$

(d) (b)-(c) 과정을 mat의 모든행에 반복하여 새로운 매트릭스를 만들어라.

- 힌트: 아래의 과정을 따른다.

  • (i) mat와 동일한 dim을 가진 mat2를 만든다.
  • (ii) mat의 첫번째 행에 (b)-(c)의 과정을 적용하여 길이가 2인 벡터를 얻는다.
  • (iii) (ii)의 과정에서 얻은 벡터를 새로운 매트릭스의 첫번째 행에 넣는다.
  • (iv) mat의 두번째 행에 대하여 (ii)-(iii)의 과정을 반복한다. 이후 세번째, 네번째 행에 대하여 (ii)-(iii)의 과정을 반복한다.

(e) (d)의 결과로 생성되 매트릭스의 첫번째 열을 x, 두번째 열을 y로 하고 산점도를 그려라. (점의 색은 붉은색으로 하라)

- 힌트: 아래와 같은 그림이 나와야 한다.