정수(integer)
양의 정수(자연수)와 음의 정수 그리고 0를 합쳐서 우리는 정수(Integer)라고 부릅니다.
예제) 양의 정수(자연수) : 1, 2, 3, 4, 5, 6, 7, 등
예제) 음의 정수 : -1, -2, -3, -4, -5, -6, -7, 등
실수(real number)
앞서 살펴본 정수를 포함하는 유리수와 무리수를 합쳐서 우리는 실수(real number)라고 부릅니다.
예제) 실수 : -3, 0, 128, ½, √2, 3.14 등
컴퓨터에서의 실수 표현
컴퓨터에서 실수를 표현하는 방법은 정수에 비해 훨씬 복잡합니다. 왜냐하면, 컴퓨터에서는 실수를 정수와 마찬가지로 0과 1로만 표현해야 하기 때문입니다. 따라서 실수를 표현하기 위한 다양한 방법들이 연구되어 왔습니다.
1. 고정 소수점(fixed point) 방식 : 소수부의 자릿수를 미리 정하여, 고정된 자릿수의 소수를 표현하는 방식
2. 부동 소수점(floating point) 방식 : 하나의 실수를 가수부와 지수부로 나누어 표현하는 방식
분수(fraction)
수학에서 분수(fraction)란 2개의 수의 비율을 사용한 수의 표현 방법 중 하나입니다.
정수 X를 0이 아닌 정수 Y로 나눈 수를 분수라고 하며, 'Y분의 X'라고 읽습니다.
이때, X를 분자, Y를 분모라고 부릅니다.
예제) 한 개의 케이크를 삼등분하면 한 조각은 '삼분의 일(⅓)'이다.
비례식(proportional expression)
비례식(proportional expression)이란 A에 대한 B의 비율이 X에 대한 Y의 비율과 같을 경우 두 비율을 등호(=)를 사용하여 나타낸 수식을 의미합니다.
백분율(percentage)
백분율(percentage)이란 수를 100과의 비율로 나타낸 것입니다. 즉, 전체 수량을 100으로 보고 그것에 대해 수가 가지는 비율을 의미하며, 기호는 %를 사용합니다.
절댓값(absolute value)
절댓값(absolute value)이란 주어진 수가 0으로부터 얼마나 떨어져 있는지를 나타내는 개념입니다. 거리는 절대 음수를 가질 수 없으므로, 절댓값은 항상 0보다 크거나 같습니다.
절댓값은 '| x |' 처럼 파이프문자(|)를 사용하여 표현합니다.
절댓값의 대소 관계
양의 정수나 양의 실수에서는 절댓값이 큰 수가 더 큽니다.
하지만 음의 정수나 음의 실수에서는 절댓값이 작은 수가 더 큽니다.
예제) 3과 7의 대소 관계를 비교하면, | 3 | = 3 이고 | 7 | = 7 이므로 7이 3보다 더 큽니다.
예제) -3과 -7의 대소 관계를 비교하면, | -3 | = -(-3) = 3 이고 | -7 | = -(-7) = 7 이므로 -3이 -7보다 더 큽니다.
연산의 우선순위
수학이나 프로그래밍에서는 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자를 먼저 처리해야 되는지를 정하기 위하여 연산의 우선순위를 미리 정해놓고 있습니다.
프로그래밍에서의 연산자 우선순위(operator precedence)
각 프로그래밍 언어마다 사용할 수 있는 연산자가 약간씩 다르며, 그 의미도 약간씩 차이가 나는 경우가 있습니다 따라서 각 프로그래밍 언어를 배울 때마다 연산자 우선순위를 한 번쯤은 확인할 필요가 있습니다.
거듭제곱
거듭제곱이란 주어진 수를 주어진 횟수만큼 곱하는 연산을 의미합니다. 즉, 숫자 a를 n번 곱한 것을 an으로 표기하고, a의 n제곱이라고 읽습니다. 이때 a를 밑(base), n을 지수(exponentiation)라고 부릅니다.
예제) 23 = 2 × 2 × 2 = 8
예제) (-3)3 = (-3) × (-3) × (-3) = -27
단, 거듭제곱은 같은 밑(base)을 가져야만 한데 묶을 수 있습니다.
예제) 2 × 2 × 2 × 3 × 3 = 23 × 32
거듭제곱의 특징
1. a0 = 1
예제) 20 = 1, 10000 = 1
2. a1 = a
예제) 31 = 3, 20001 = 2000
3. a-n = 1 / an
예제) 3-2 = 1 / 32 = 1 / 6
지수법칙(law of exponent)
거듭제곱에서는 다음과 같은 법칙이 성립합니다.
1. 지수의 합 : am × an = am+n (m, n이 양의 정수일 때)
예제) 32 × 33 = (3 × 3) × (3 × 3 × 3) = 3 × 3 × 3 × 3 × 3 = 35
2. 지수의 곱 : ( am )n = amn (m, n이 양의 정수일 때)
예제) (42)5 = 42 × 42 × 42 × 42 × 42 = 42+2+2+2+2 = 42×5 = 410
3. 지수의 차 :
(1) am ÷ an = am-n (m ≥ n일 때)
예제) 25 ÷ 22 = 25-2 = 23
(2) am ÷ an = 1 / an-m (m<n일 때)
예제) 32 ÷ 37 = 1 / 37-2 = 1 / 35
제곱근(square root)
제곱근(square root)이란 간단히 말해 제곱의 반대 개념입니다..
즉, 제곱해서 a가 되는 실수를 모두 a의 제곱근(루트 a)이라고 부르며, 기호로는 '√'을 사용합니다.
제곱근 구하기
앞선 예제와 같이 실수 a에 따라 제곱근의 개수가 달라질 수 있습니다.
1. a > 0 이면 절댓값은 같고 부호만 다른 2개의 제곱근을 가집니다.
2. a = 0 이면 제곱근은 0 하나 뿐입니다.
3. a < 0 이면 허수와 복소수라는 개념까지 알아야 하므로, 코딩수학에서는 다루지 않습니다.
소수(prime number)
소수(prime number)란 1과 자기 자신으로밖에 나누어지지 않는 1보다 큰 자연수를 의미합니다. 즉, 소수는 1과 자기 자신, 단 두 개의 약수만을 가집니다.
소수 예제) 2, 3, 5, 7, 11, 13, 17, 19, 23, 등
단, 1은 소수가 아니며, 2는 유일한 짝수인 소수입니다.
합성수(composite number)
합성수(composite number)란 1과 자기 자신 이외의 또 다른 수를 약수로 가지는 자연수를 의미합니다. 즉, 합성수는 1과 자기 자신 외에 또 다른 약수를 가지므로 언제나 세 개 이상의 약수를 가집니다.
합성수 예제) 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 등
단, 1은 소수도 아니고 합성수도 아니며, 1보다 큰 모든 자연수는 소수이거나 합성수이다.
소인수분해(prime factorization)
소인수분해(prime factorization)란 합성수를 소수들의 곱으로만 나타내는 것을 의미합니다.
합성수를 소인수분해한 결과는 소인수들의 순서를 생각하지 않으면 오직 한 가지 형태만이 존재합니다.
예제) 12를 소인수분해하시오.
12의 인수 = {1, 2, 3, 4, 6, 12} → 12의 소인수 = {2, 3} → 12 = 22 × 31
∴ 22 × 31
소인수분해 방법
소인수분해를 하는 가장 간단한 방법은 다음과 같습니다.
1. 해당 합성수를 소인수로 몫이 소수가 될 때까지 나눗셈을 계속합니다.
2. 사용된 모든 소인수와 마지막 몫을 지수의 형태로 곱합니다.
최대공약수(Greatest Common Divisor, GCD)
공약수(common divisor)란 두 수 이상의 여러 수의 공통된 약수를 의미합니다.
최대공약수(GCD)란 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킵니다.
예제) 72와 90의 최대공약수를 구하시오.
∴ gcd(72, 90) = 2 x 32 = 18
만약 gcd(a, b) = 1이면, 두 수 a, b는 서로소(coprime) 관계에 있다고 합니다.
최소공배수(Lowest Common Multiple, LCM)
공배수(common multiple)란 두 수 이상의 여러 수의 공통된 배수를 의미합니다.
최소공배수(LCM)란 두 수 이상의 여러 수의 공배수 중 최소인 수를 가리킵니다.
예제) 24와 30의 최소공배수를 구하시오.
∴ lcm(24, 30) = 23 x 3 x 5 = 120
함수(function)
함수(function)란 첫 번째 집합의 임의의 한 원소가 두 번째 집합의 오직 한 원소에만 대응하는 관계를 의미합니다. x와 y 사이에서 x의 값이 정해지면 거기에 따라 y의 값이 정해지는 관계를 가질 때 y는 x의 함수라고 부릅니다.
프로그래밍에서의 함수
프로그래밍에서 함수(function)란 특정 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다. 또한, 변수(variable)란 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다. 프로그래밍에서 함수를 사용하는 가장 큰 이유는 바로 반복적인 프로그래밍을 피할 수 있기 때문입니다. 또한, 프로그램을 여러 개의 함수로 나누어 작성하면, 모듈화로 인해 전체적인 코드의 가독성이 좋아집니다. 그리고 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때에도 손쉽게 유지보수를 할 수 있습니다.
원주율
원과 관련된 용어
원과 관련된 용어에는 다음과 같은 것이 있습니다.
1. 원의 중심 : 원 위의 모든 점들과 같은 거리에 있는 한 점
2. 지름 : 원 위의 두 점을 이은 선분 중 원의 중심을 지나는 선분
3. 반지름 : 원 위의 한 점과 원의 중심을 이은 선분
4. 원주 : 원의 둘레의 길이
원주율(number π)
원의 크기와 관계없이 원의 지름에 대한 원주의 비율은 항상 일정합니다. 이 값을 원주율(number π)이라고 하며, 원의 지름에 대한 둘레의 비율을 나타내는 상수입니다. 원주율 π의 값은지름이 1인 원의 둘레의 길이와 같으며, 그 값은 3.1415926535897932384626433832795…입니다. 이 값은 순환하지 않는 무리수이므로, 우리는 보통 근사값으로 3.14를 사용합니다.
원주율의 활용
원주율을 활용하면 원과 관련된 다양한 값들을 손쉽게 구할 수 있습니다.
1. 원주(원의 둘레의 길이) = 지름 × 원주율 = 2r × π = 2πr (r은 반지름)
예제) 지름 4인 원의 둘레의 길이를 구하시오.
원의 반지름(r) = 원의 지름 / 2 = 4 / 2 = 2
∴ 원의 둘레 = 2πr = 2 × π × 2 = 4 × π ≈ 4 × 3.14 = 12.56
2. 원의 넓이 = 반지름2 × 원주율 = r2 × π = πr2 (r은 반지름)
예제) 반지름이 5인 원의 넓이를 구하시오.
∴ 원의 넓이 = πr2 = π × 52 = 25 × π ≈ 25 × 3.14 = 78.5
호도법
호도법이란 과학 등의 분야에서 정의하는 각도의 단위로 ㎭으로 표시하고, 라디안(radian)으로 읽습니다. 라디안(θ)은 호의 길이와 반지름의 길이가 같은 부채꼴의 중심각을 1로 정의하고 있습니다.
육십분법과 호도법
우리는 평소에 육십분법(˚)을 많이 사용하므로, 호도법(㎭)이 익숙치 않을 수 있습니다. 하지만 경우에 따라 육십분법을 호도법으로, 호도법을 육십분법으로 변환해야 할 경우가 생길 수 있습니다. 반지름이 r인 원의 둘레의 길이는 2πr이며, 부채꼴의 호의 길이와 중심각의 크기는 정비례하므로 다음 공식이 성립합니다.
삼각함수(trigonometric function)
삼각함수(trigonometric function)란 각에 대한 함수로 삼각형의 각과 변의 길이를 서로 연관시킨 함수입니다. 이러한 삼각함수는 직각삼각형의 두 변의 길이의 비로 정의할 수 있습니다. 삼각함수에는 다음과 같은 세 개의 기본적인 함수를 정의하고 있습니다.
1. 사인(sine, 기호 sin)
2. 코사인(cosine, 기호 cos)
3. 탄젠트(tangent, 기호 tan)
또한, 이 함수들의 역수를 각각 다음과 같이 정의하고 있습니다.
1. 코시컨트(cosecant, 기호 csc)
2. 시컨트(secant, 기호 sec)
3. 코탄젠트(cotangent, 기호 cot)
직각삼각형을 이용한 삼각함수의 정의
가장 손쉽게 삼각함수를 정의하는 방법은 바로 직각삼각형을 이용하는 것입니다. 하지만 직각삼각형의 각은 0˚ 부터 90˚ 사이이므로, 직각삼각형을 이용해 정의한 삼각함수는 음의 각이나 90˚ 보다 큰 각에 대해서는 적용되지 않습니다. ∠C가 직각인 직각삼각형 ABC에서, ∠A, ∠B, ∠C의 대변(마주보는 변)의 길이를 각각 a , b , c라고 하면, 삼각함수를 다음과 같이 정의할 수 있습니다.
부등식(inequality)
부등식(inequality)이란 두 수 또는 두 식의 관계를 부등호를 사용하여 표현한 식입니다.
예제) 'X가 Y보다 크다' ⇒ 'X > Y'
부등식의 성질
부등식은 다음과 같은 성질을 가지고 있습니다.
1. 부등식은 양변에 같은 수나 식을 더하거나 빼도 부등호의 방향이 바뀌지 않습니다.
예제) 8 > 4 ⇒ 8 - 3 > 4 - 3 ⇒ 3 > 1
2. 부등식은 양변에 양의 부호를 가지는 같은 수나 식을 곱하거나 나누어도 부등호의 방향이 바뀌지 않습니다.
예제) 8 > 4 ⇒ 8 × 2 > 4 × 2 ⇒ 16 > 8
3. 부등식은 양변에 음의 부호를 가지는 같은 수나 식을 곱하거나 나누면 부등호의 방향이 바뀝니다.
예제) 8 > 4 ⇒ 8 / (-2) > 4 / (-2) ⇒ -4 < -2
수열(sequence)
수열(sequence)이란 자연수를 정의역으로 갖는 함수나 그 함수의 결과로 얻어지는 원소들을 나열한 것을 의미합니다. 수열을 이루고 있는 각 수를 항(term)이라고 하며, 순서대로 첫째 항(첫항), 둘째 항, 셋째 항 등으로 읽습니다. 또한, 특정되지 않은 임의의 항을 제 n항이라고 부르며, 이것을 수열의 일반항이라고 합니다.
만약 수열이 일정한 규칙을 가질 경우 그 규칙에 따라 등차수열, 등비수열 등으로 구분할 수 있습니다. 이러한 수열은 원소가 순서를 가지며, 중복이 허용된다는 점에서 집합과는 구별됩니다.
등차수열(arithmetic sequence)
등차수열(arithmetic sequence)이란 연속하는 두 항의 차이가 모두 일정한 수열을 가리킵니다. 이때 두 항의 차이는 이 수열의 모든 항에 대해서 공통적으로 나타나는 차이이므로 공차(common difference)라고 부릅니다. 예를 들어, 앞서 살펴본 홀수의 수열은 첫항이 1이고, 공차가 2인 등차수열인 것입니다.
예제) 첫항이 4이고 공차가 3인 등차수열은 다음과 같이 표현할 수 있습니다.
풀이) { 4, 7, 10, 13, 16, 19, ... } 또는 { 3n+1 }
등비수열(geometric sequence)
등비수열(geometric sequence)이란 수열의 각 항이 그 앞의 항에 일정한 수를 곱한 것으로 이루어진 수열을 가리킵니다. 따라서 첫항은 0이 되어서는 안되며, 곱하는 일정한 수를 공비(common ratio)라고 부릅니다.
행렬(matrix)
행렬(matrix)이란 1개 이상의 수나 식을 사각형 모양으로 나열한 것을 의미합니다.
프로그래밍에서의 배열(array)
프로그래밍에서 배열은 같은 종류의 데이터를 많이 다뤄야 하는 경우에 사용할 수 있는 가장 기본적인 자료 구조입니다.
배열(array)은 같은 타입의 변수들로 이루어진 유한 집합으로 정의됩니다.
배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 합니다.
불리언(boolean)
불리언(boolean)은 논리학에서 참(true)과 거짓(false)을 나타내는 데 사용됩니다. 또한, 논리 연산(logical operation)이란 주어진 논리식을 판단하여 참(true)과 거짓(false)을 결정하는 연산입니다.
예제) 3 > 5 = true
예제) -2 < -7 = false
이러한 논리 연산의 결과는 진리표(truth table)를 만들어보면 손쉽게 확인할 수 있습니다.
프로그래밍에서의 불리언
예전에는 많은 프로그래밍 언어들이 참을 숫자 1로, 거짓을 숫자 0으로 표현했습니다. 하지만 최신 프로그래밍 언어들은 대부분 별도의 불리언 자료형을 제공하고 있습니다.
JAVA 예제) boolean a = true;
C++ 예제) bool b = false;
Python 예제) c = True
PHP 예제) d = true;
명제(proposition)
명제(proposition)란 그 내용이 참인지 거짓인지를 누구나 명확하게 판단할 수 있는 식이나 문장을 의미합니다.
예제) 서울은 대한민국의 수도이다. : 참인 명제
예제) 파리는 미국의 수도이다. : 거짓인 명제
예제) 빨간색은 이쁘다. : 참과 거짓을 판단할 수 없으므로 명제가 아님.
명제에서 부정은 '~'기호로 표현합니다.
역, 이, 대우
원 명제의 가정과 결론을 바꾸어 놓은 명제를 해당 명제의 역(逆)이라고 합니다.
그리고 원 명제의 가정과 결론을 각각 부정한 명제를 해당 명제의 이(裏)라고 합니다.
마지막으로 원 명제의 역(逆)의 가정과 결론을 각각 부정한 명제를 해당 명제의 대우(對偶)라고 합니다.
경우의 수(number of cases)
경우의 수(number of cases)란 한 번의 시행으로 일어날 수 있는 사건의 모든 가짓수를 의미합니다. 예를 들어 동전 던지기에서의 경우의 수는 동전의 앞면과 뒷면이 나올 수 있으므로, 2가 됩니다. 또한, 주사위를 던질 때의 경우의 수는 1부터 6까지만 나올 수 있으므로, 6이 됩니다.
합의법칙
두 사건 A, B가 동시에 일어나지 않을 때, 사건 A가 일어날 경우의 수가 m이고 사건 B가 일어날 경우의 수가 n이면, 사건 A 또는 사건 B가 일어날 경우의 수는 m + n이 됩니다.
곱의법칙
사건 A가 일어날 경우의 수가 m이고, 사건 B가 일어날 경우의 수가 n이면, 사건 A 와 B가 동시에(연이어) 일어날 경우의 수는 m × n이 됩니다.
순서도(flowchart)
순서도(flowchart)란 어떠한 일을 처리하는 과정을 순서대로 간단한 기호와 도형으로 도식화한 것을 의미합니다. 이러한 순서도는 여러 분야에서 프로세스나 문제의 분석, 기획, 디자인, 설계나 관리 등에서 폭넓게 활용되고 있습니다.
진법
진법이란 수를 표기하는 기수법의 하나로 임의의 숫자를 사용하여 수를 표현하는 방법입니다.
우리가 일반적으로 사용하는 1부터 9까지의 숫자를 사용하여 수를 나타내는 방법은 10진법이라고 부릅니다. 현재 프로그래밍에서 많이 사용되고 있는 진법은 다음과 같습니다.
1. 2진법(binary notation)
2진법은 0과 1, 두 개의 숫자만으로 수를 표현하는 방법입니다. 이러한 2진수는 자릿값이 올라감에 따라 그 크기가 2배씩 커지게 됩니다.
2. 8진법(octal notation)
8진법은 0부터 7까지의 숫자로 수를 표현하는 방법입니다. 이러한 8진수는 2진수를 3자리씩 빠르게 묶어 표현할 수 있어, 비트 단위까지 신경쓰며 프로그래밍을 하던 초창기 컴퓨터에서 많이 사용했습니다.
3. 10진법(decimal notation)
10진법은 0부터 9까지의 숫자로 수를 표현하는 방법으로, 우리가 일상 생활에서 수를 나타낼 때 흔히 사용하는 방법입니다.
4. 16진법(hexadecimal notation)
16진법은 0부터 9까지의 숫자와 A부터 F까지의 문자를 함께 사용하여 수를 표현하는 방법입니다. 이러한 16진수는 특히 컴퓨터 분야에서 1바이트(byte)의 크기를 쉽게 표현할 수 있어 많이 사용되고 있습니다.
진법 변환
10진수를 각 진법으로의 변환하는 방법은 다음과 같습니다.
1. 10진수를 변환하고자 하는 진법의 기수(2진법이면 2가 기수임)로 나누고, 해당 나머지를 기록합니다.
2. 나눈 몫을 또 다시 변환하고자 하는 진법의 기수로 나누고, 해당 나머지를 기록합니다.
3. 이렇게 계속해서 나눈 몫을 기수로 나누다가 나눈 몫이 해당 기수보다 작아지면 중단합니다.
4. 마지막 몫과 지금까지 기록한 나머지들을 역으로 연결하면 해당 진법의 수가 완성됩니다.
댓글