소프트웨어 공학용 수학 17

경우의 수

조합론과 경우의 수 조합론(Combinatorics) - 프로그래밍에서 많이 쓰임 물건들을 여러 가지 형태로 그룹 짓는 방법을 연구하는 학문 예) 16비트 숫자로 표현 가능한 갯수, 알고리즘 복잡도 계산 경우의 수 어떤 시도(trail)를 통해 일어날 수 있는 사건(events)의 가짓 수 경우의 수 세기 : 몇 개인지 세는 기법 대표적인 두 가지 방법 - 곱의 법칙, 합의 법칙 곱의 법칙 다음과 같은 절차가 있다고 가정해보자. 이 절차는 2개의 일(tasks)로 나눠 수행할 수 있다. 첫 번째 일을 할 수 있는 방법은 n₁개 두 번째 일을 할 수 있는 방법은 n₂개 두 번째 일은 첫 번째 일이 끝나야 할 수 있다. 총 가짓 수는 n₁ x n₂ 일의 수가 늘어나도 동일하다 n₁ x n₂ x n₃ x ....

벡터에 대해서

벡터(vector) 힘의 방향과 크기를 나타낸다. 화살표의 길이로 길면 빠른 것, 짧으면 느린 것 크기에 방향성을 함께 고려 예 : 중력 프로그래밍에서 벡터를 표현하는 방법 크기와 방향이니까 스칼라 2개 즉, 기본형 변수 2개로 표현 가능 public class Vector { public double Angle { get; set; } public double Megnitude { get; set; } } (각도, 크기)표현법의 한계 예를 들어 벽에 반사돼서 튕겨 나오는 공은 어떻게 계산할까..? 이런 경우 '성분 표기법'을 사용하면 훨씬 편하게 가능하다. 벡터 성분으로 길이, 각도 구하기 벡터는 사분면 어디에든 존재한다. 단, 개념 상 시작은 언제나(0, 0)부터 벡터의 연산 단위(unit) 벡터 길..

수학적 귀납법

수학적 귀납법(mathematical induction) 수학 증명 기법 중 하나 모든 자연수 n에 대해 어떤 명제 P(n)이 참임을 증명할 때 사용 n = { 0, 1, 2, ...} P(0)도 참 P(1)도 참 등.. 수학적 귀납법의 증명 방법 기본 가정 : 시작점 P(0)이 참임을 증명 귀납 가정 : 임의의 자연수 k에 대해 P(k)가 참일 때 P(k + 1)도 참일 것이라는 일반적인 가설을 세움 : P(k) -> P(k + 1) 귀납 단계 : 이 가설이 참임을 증명 결론 : 그럼 P(0)이 참이니 P(1)도 참, P(1)이 참이니 P(2)도 참. 연쇄적으로 참이 일어나므로 모든 자연수 n에 대해 P(n)이 참임을 증명 예시 : 도미노 쓰러뜨리기 도미노를 전부 쓰러트리려면? 간격을 정확히 잘 세워야..

과학적 사고방법

과학적 사고방법(scientific reasoning) 수학과 과학은 밀접한 관계를 갖고 있다. 왜에서 출발하여 결과를 도출하는 행위 확률과 비율을 사용하여 진리에 근접할 수 있도록 도와준다. 과학적 연구의 신뢰도를 확보하는 논리적 사고 체계 이러한 방식을 가설 - 연역 방법이라고 한다. 귀납법과 연역법 귀납법 : 관찰을 통해 확인한 현상들로부터 보편적인 결과를 도출하는 추론 방법 예) 해가 1800년도에 동쪽에서 떴다, 해가 조선시대에 동쪽에서 떴다, 현재도 동쪽에서 뜬다. 해는 동쪽에서 뜬다. 연역법 : 하나 이상의 전제에서 논리적으로 특정 결론에 도달하는 추론방법 예) 사람은 죽는다, 난 사람이다, 나는 죽는다. 과학적 사고방법 과정 어떤 현상을 관찰한다. 그 현상이 생기는 이유를 고민한 뒤, 그로..

조건명제, 증명

조건명제(implication) 어떤 명제 p가 참이면 다른 명제 q도 참이 된다고 주장하는 명제 p가 참이라고 q가 참이란 의미가 아니다. 조건 명제는 전제와 결론이라는 단계가 존재 p(전제) → q(결론) 조건 명제의 진리 판단 p: 오늘 해가 난다 q: 바다에 놀러간다 p → q : 만약 오늘 해가 나면, 바다에 나갈 것이다. p q p → q T: 해가 남 T: 바다에 놀러감 T T: 해가 남 F: 바다에 안 놀러감 F F: 해가 안 남 T: 바다에 놀러감 T F: 해가 안 남 F: 바다에 안 놀러감 T 명제 p는 해가 안 날때를 정의하지 않고 있다. 따라서 판단 불가라고 말할 수 있지만 반드시 결론을 내려야 함 무의미한 참(vacuous truth): 전제하지 않은 내용은 무조건 참 다른 조건 ..

교환, 결합, 분배, 흡수 법칙, 논리회로

교환 법칙 X + Y = Y + X XY = YX X Y X + Y Y + X XY (&&) YX 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 결합 법칙 1. X + (Y + Z) = (X + Y) + Z X Y Z (Y+Z) X+(Y+Z) (X+Y) (X+Y)+Z 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 0 0 2. X(YZ) = (XY)Z X Y Z (YZ) X(YZ) (XY) (XY)Z 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0..

명제, 불 대수, 논리 회로 설계

논리(logic) : 객관적으로 바라볼 수 있는 것 즉, 참과 거짓을 판단할 수 있는 능력 논리의 규칙 수학적 의미 수학적 전술에 정확한 의미를 부여 수학적 주장의 유효성을 분별하는데 사용 프로그래밍적 용도 컴퓨터 회로 설계 프로그램작성 프로그램이 올바르게 동작하는지 검증 명제(proposition) : 참 또는 거짓 중 하나로 판별 가능한 말 즉, 객관적이여야한다. 예) 0은 1보다 작다. 진리표(truth table) 명제에서 나올 수 있는 참 / 거짓 판단의 모든 가능성을 표로 나열 단순 명제 p의 진리표 P T(true, 참) F(false, 거짓) 합성명제 단순 명제를 논리 연산자로 결합한 것들 조건 명제 논리 부정(not, negation) 명제 p를 부정 예) 오늘 챔피언이 나온다 < - ..

집합론

집합의 개념과 관계 집합이 중요한 이유 이산 수학에서 사용하는 다른 데이터 구조(예: 그래프, 조합, 관계 등)의 기반 명제나 불 대수(Boolean algebra)와 어느 정도 바꿔가며 사용 가능 논리 연산 및 비트 연산을 증명하는데 매우 유용 프로그래밍 언어의 기본 데이터 구조로도 set이 존재 집합이란? 특정 조건을 만족하는 대상들의 순서 없는 모임 특정 조건 : 집합에 속하는지 여부를 판단하는 객관적 조건 순서가 없다 : 집합 안에 있는 각 대상들은 동등하단 의미 집합은 영어 대문자로 표현(A, B, C...) 비교 대상으로는 순서 있는 모임, 예) 배열 원소(Element)란? 어떤 집합안에 들어간 물체 앞에서 말한 조건을 만족하여 특정 집합에 포함된 대상 프로그래밍 언어에서는 '요소'라고도..

정규화한 과학적 표기법 및 32비트 부동소수점

과학적 표기법 과학, 수학, 공학 쪽에서 숫자를 표기하는 방법 너무 크거나 작은 수를 읽게 편하게 작성하는 방법 m * 10의 n승 (m: 가수, n: 지수) 가수 : 실수로 이루어짐, 부동 소수점 수의 유효 숫자 지수 : 정수로 이루어짐, 소수점의 위치를 나타냄 유효숫자 : 수의 정확도와 정밀도에 영향을 주는 숫자 예) 0이 아닌 모든 수는 유효 숫자, 0이 아닌 두 수 사이에 있는 0은 유효숫자, 소수점 아랫자리에서 유효 숫자 왼쪽에 있는 0은 유효 숫자가 아님 컴퓨터에 어떻게 구현되어 있을까? 정확도(accuracy) 와 정밀도(precision) 예) 같은 행위를 동일한 횟수만큼 반복해서 얻은 데이터의 패턴을 설명 군대에서 총을 쏠 때, 과녁지을 예로 들면 정확도 : 참 값에 얼만큼 접근했는가 정..

컴퓨터의 유리수 표현(고정소수점, 부동소수점)

실수 유리수와 무리수로 이루어진 수 체계 유리수란? 두 정수의 비로 나타낼 수 있는 수. 분수로 나타낼 수 있는 소수 정수는 유리수에 포함 1.5, 10, -2033 무리수란? 두 정수의 비로 나타낼 수 없는 수, 분수로 나타낼 수 없는 소수 대표적인 예) 파이 10진법의 실수 - 2진수 또한 같다 9 8 0 . 2 3 4 5 6 10² 10¹ 10⁰ . 10⁻¹ 10⁻² 10⁻³ 10⁻⁴ 10⁻⁵ 실수의 10진수 -> 2진수 변환법 0.625 => 0.625 - 0.5 => 0.125 - 0.125 => 0.0.101₂ 0.5 0.25 0.125 1 0 1 또는 2를 곱해주고 묷만 따로 앞에서부터 묶어주면 된다. 앞에있는 묶을 앞에서부터 묶어주면 된다. 0.625 * 2 => 1.250 * 2 => 0..

반응형