데이터 과학을 위한 기초수학 with 파이썬 답안 - deiteo gwahag-eul wihan gichosuhag with paisseon dab-an

[저자] 이병준

서울대학교 수학교육과를 졸업한 후 동 대학교 수리과학부에서 석사, 박사 학위를 취득하였습니다. 주요 연구 분야는 수치해석, 전산 유체역학, 산업응용수학, 수학적 최적화 등입니다. 현재는 가톨릭대학교 수학과 및 인공지능학과 (겸무) 교수로 재직 중입니다. 또한 한국산업응용수학회(KSIAM), 대한수학회(KMS), 한국전산유체공학회(KSCFE) 회원으로 활동 중이며 현재 한국산업응용수학회에서 총무이사를 맡고 있습니다.

가톨릭대학교는 2019년에 4차 산업혁명 혁신선도대학으로 선정되었으며, 저자는 참여학과 교원으로 활동을 하면서 <인공지능과 수학적 최적화>, <딥러닝의 이론 및 실습> 등의 신규 과목을 개설하여 학생들에게 머신러닝을 위한 수학을 소개하는 데 힘쓰고 있습니다. 주요 저서로는 『데이터 과학을 위한 기초수학 with 파이썬』(한빛아카데미, 2021)이 있습니다.

1장. 함수

1.1함수

1.2합성함수

1.3역함수

프로그래밍 함수 요약

연습문제

프로그래밍 실습

2장. 여러 가지 함수

2.1다항함수

2.2지수함수와 로그함수

2.3삼각함수

프로그래밍 함수 요약

연습문제

프로그래밍 실습

3장. 극한과 연속

3.1수열과 점화식

3.2 수열의 극한

3.3함수의 극한

3.4함수의 연속

프로그래밍 함수 요약

연습문제

프로그래밍 실습

4장. 미분

4.1미분계수와 도함수

4.2미분법

4.3고차도함수

4.4합성함수와 역함수의 미분법

4.5음함수와 매개변수로 표현된 함수의 미분법

4.6로피탈의 정리

4.7미분의 응용

프로그래밍 함수 요약

연습문제

프로그래밍 실습

5장. 적분

5.1부정적분

5.2여러 가지 함수의 적분

5.3치환적분법

5.4부분적분법

5.5정적분

5.6적분의 응용

프로그래밍 함수 요약

연습문제

프로그래밍 실습

6장. 벡터와 공간

6.1벡터

6.2공간좌표

6.3내적과 외적

6.4직선의 방정식과 평면의 방정식

프로그래밍 함수 요약

연습문제

프로그래밍 실습

7장. 행렬

7.1행렬과 기본연산

7.2역행렬과 행렬식

7.3선형 연립방정식

7.4가우스 소거법

7.5일차변환

프로그래밍 함수 요약

연습문제

프로그래밍 실습

8장. 확률과 통계

8.1순열과 조합

8.2이항정리

8.3확률

8.4평균과 표준편차

8.5확률분포

8.6추정

프로그래밍 함수 요약

연습문제

프로그래밍 실습 

부록. 표준정규분포표

안녕하세요 성조입니다.

개인 문제 풀이이므로 오답이 있을 수 있습니다.

오답이거나 조금 이상하다 또는 질문이 있는 경우 댓글 부탁드리겠습니다.


5장

01. 다음 코드의 실행 결과를 쓰시오

[ 정답 ] 출력 화면

Before : 10
In Function : 20
After : 10

첫 라인부터 시작하면

test(t)함수가 값을 받고 다음 부분에 t 변수가 t=20이라고 정의됐습니다. 소스코드는 반환 값이 없으므로 함수 안의 수행문만 수행합니다. 그러므로 함수 안에서 정의된 t= 20이란 수행문만 실행되며 특별한 값이 반환이 없고 함수 내에서만 실행되므로 10이 아닌 20이 출력됩니다.

02. 다음 코드의 실행 결과를 쓰시오

[ 정답 ] None

sotring_function함수는 리턴 값을 갖고 있다.

값에 의한 호출이 아닌 참조에 의한 호출이 사용되므로 None 값을 갖는다.

함수 안의 인수 값을 정렬해서 반환하는 것 이므로 [5, 4, 3, 2, 1]의 값을 변수에 저장해서 변수를 반환해야 된다.

03. 다음 코드의 실행 결과를 쓰시오 ( ★ 잘 모르겠는 문제입니다.)

[ 정답 ] 모호한 구문 이므로 그에 대한 문법 경고가 나온다.<- 미확실

제대로 풀었는지 확신을 못 갖습니다. 아래의 링크에서 SyntaxWaring을 참조 했습니다!

python.flowdas.com/library/warnings.html

warnings --- 경고 제어 — 파이썬 설명서 주석판

warnings --- 경고 제어 소스 코드: Lib/warnings.py 경고 메시지는 일반적으로 프로그램에서 사용자에게 (일반적으로) 예외를 발생시키거나 프로그램을 종료하는 것을 보증하지 않는 특정 조건에 대해

python.flowdas.com

04. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

[ 정답 ] 3번 - None

if 조건에 들어가는 조건은 2가지이다.

1. 입력받은 문자를 대문자로 바꾸고 그 문자가 YES와 같은 경우.

2. 입력받은 문자를 대문자로 바꿨는데 Y 하나인 경우.

Yes를 입력받았으므로 YES와 Y가 답이 아니므로 if의 참값을 가질 수 없다.

즉 아무 겂도 없는 None 값을 의미한다.

05. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

[ 정답 ] 4번 - False

return 즉 반환하는 공식이 b+a*c+b이다.

4+3*5+3 == 63을 출력하는 문제이다.

위의 값을 계산하면 22 == 63이므로 값은 같지 않다.

즉 False가 출력된다.

06. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

(★ 이해가 애매하게 된 문제입니다)

[ 정답 ] 3번 - TypeError

*를 사용하는 가변 인자 *args를 사용하려면 문자열이 필요한데 함수에서 int형 과 형 충돌이 일어나기 때문에 타입 에러가 나온다.

07. 다음 코드의 실행 결과를 쓰시오.

[ 정답 ] [ 'green', 'blue' ]

문제는 주소에 의한 호출을 한다.

append 함수를 사용해서 colors 리스트 안에 purple이라는 단어를 삽입해도 바로 아래 줄에서 colors를 colors = ["green", "blue"]이라고 재정의한 후 반환하기 때문에 출력 결과로 [ 'green', 'blue' ]가 나온다.

08. 다음 코드의 실행 결과를 쓰시오.

[ 정답 ]


위와 같이 출력된다.

이 문제의 function 함수는 값에 의한 호출을 하고 있으며 반환 값은 없다. 즉 값만 출력하면 되는데 print() 함수를 사용해서 값을 찾지 못해서 None 값을 갖는다.

09. 다음 코드의 실행 결과를 쓰시오.

[ 정답 ] appl

이 문제의 트릭은 함수 명이 get_apple이라는 것을 인지하고 있어야 한다.

fruit = "appl"이라고 이미 저장한 상태이다.

get_apple 함수에 fruit 변숫 값을 넣어서 반환받았지만  값에 의한 호출을 사용했으므로 함수 외부에 존재하는 fruit 변수는 영향을 받지 않는다. 그러므로 appl이 출력된다.

10. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

[ 정답 ] 3번

1) sentence 변수에 저장된 문자열 I Love You가 출력되고 5가 재귀 호출 sentence += str(n)을 이용하여 5부터 순차적으로 54321이 출력된다.

2) 0보다 작은 경우에도 출력된다. 즉 5번이므로 5,4,3,2,1,0 6개의 문자열이 출력된다.

3) I Love You543210이 완성된다. 

11. 다음 코드의 실행 결과를 쓰시오.

[ 정답 ] [ ' x ' ]

C언어 같은 경우 test 함수는 위치를 바꾸는 스왑 함수이다.

x 리스트에 값이 [ ' y ' ]가 있다면 y.append(x)로 인해서 x 변수에는 [ ' y ' , [ ' x ' ] ]가 저장된다.

y 값은 함수 외부에 있으며 주소에 의한 호출이 아니므로 밖에 있는 y 변수 리스트에는 변화가 없다.

그러므로 [ ' x ' ]가 출력된다.

12.  다음 코드의 실행 결과를 쓰시오.

[ 정답 ]

1) 값에 의한 호출을 사용하여 3의 값을 contdown 함수에 넣어준다.

2) 3의 값을 전달받았을 때 n % 2 ==0이 아닌 1이 나머지 값으로 남는다. -> Odd 출력

3) Odd 출력과 동시에 n-1을 수행한다. 즉 3에서 2로 감소된다.

4) 한 줄 한 줄 번역하는 인터프리터 언어 특성상 값이 변경되므로 countdown()이 다시 실행됐을 때 n% 2==0의 조건이 만족된다. -> Even 출력

5) 이후 값의 변동이 없으므로 Odd가 출력된 이후 Even가 출력되고 함수는 끝난다.

이 문제의 경우.

countdown(n-1) 즉 재귀 호출을 Even에도 적용하는 경우.

팩토리얼 계산만큼 Odd와 Even이 출력된다.

13. 다음 코드를 실행하면 결과값으로 120이 나온다. 빈칸에 들어갈 알맞은 코드를 작성하시오.

[ 정답 ]

factorial_calculator(n-1)

1) 이 문제는 소스코드 빈 블록에 알맞은 코드를 작성하는 것이다.

2) 결과 값이 120이 나와야 한다.

3) 빈 블록은 재귀 호출을 사용해서 프로그램을 작성하면 120을 출력할 수 있다.

4) 본인 함수 자체를 호출하여 즉 factorial_calculator(n)을 호출하는데 1씩 감소시킨다. 즉 factorial_calculator(n-1)로 작성하면 재귀 호출을 사용한 함수로 120 값을 갖고 올 수 있다.

14.  다음 코드의 실행 결과를 쓰시오.

[ 정답 ] 따로 출력되는 값은 없다.

현재 출력하는 함수가 없다. 변수를 저장했을 뿐 특별히 출력되는 값은 없다.

15. 다음 코드의 실행 결과를 쓰시오.

[ 정답 ]

파이썬은 인터프리터 언어로 링커를 사용하는 타 언어와 다르게 한 줄 한 줄 읽어낸다.

즉 x =20을 읽으면서 변수가 저장된 후 exam_func() 함수가 실행되면서 exam_func() 함수 내의 Value : 10 값을 먼저 출력한다. 이후 함수 외부의 Value : 20 값을 출력한다.

16. 다음 코드의 실행 결과를 쓰고, 그 결과값이 나오는 이유를 설명하시오.

[ 정답 ] None

2번째 줄에서 country 리스트에 append 함수를 사용하여 Remove라는 원소를 추가했다.

하지만 3번째 라인 print함수 안에 country 리스트에 remove 함수를 사용하여 country 안에 추가됐던 Remove를 삭제해서 메모리를 반환했으므로 값을 찾을 수 없다.


최대한 정답이라고 생각하는 답과 개인적으로 풀이했습니다 개인 풀이이므로 미숙한 부분이 있을 수 있습니다.

댓글로 알려주시면 감사드리겠습니다.

감사합니다 성조였습니다.

다음 포스팅 때 뵙겠습니다!