본문 바로가기

알고리즘(Algorithm)/수학(Math)

(3)
호너의 법칙(Horner's method) 호너의 법칙은 영어로 Horner's rule (or Horner's method, Horner's scheme)라고 불리는데 다항식을 푸는데 계산량을 줄일수 있는 방법이다. 일반적으로 그림1과 같은 다항식이 있다고 가정하면 차수가 가장 높은것부터 낮은것까지 하나씩 계산하면서 모두 더해주면 된다. [출처] Horner`s Rule for Polynomial Computation 예를들어 5x4 + 2x3 – 3x2 + x – 7 가 있고 x = 3이라고 하면 그림2처럼 계산되고 결과 값은 428이 된다. 이 방법으로 프로그래밍하면 다음과 같고 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3..
순열(permutation) 알고리즘 순열(permutation)이란 숫자나 문자들의 집합(set)에 순서를 부여하여 나열하는 것이라고 생각하면 된다. 예를들어 원소가 'A', 'B', 'C'를 가진 집합 S 가 있다면 ( { 'A', 'B', 'C' } ∈ S) 이 A ,B, C 각각의 원소를 일렬로 나열했을때 나올수 있는 경우의 수는 (A, B, C), (A, C, B), (B, A, C), (B, C, A), (C, A, B), (C, B, A) 총 6가지가 나올수 있다. 순열에 대해서 자세히 알고 싶으면 순열(permutation) 를 먼저 읽어봐라. 그럼 순열을 프로그래밍적으로 어떻게 접근해야 할까? 만약 {a,b,c,d}의 모든 순열을 구한다고 하면 ☞ 첫 원소가 a이면서 {b,c,d}의 모든 순열 ☞ 첫 원소가 b이면서 {a,c..
멱집합(Power Set) A의 모든 부분집합을 원소로 하는 집합을 A의 멱집합(power set)이라 하고 P(A) 또는 2A로 나타낸다. 예를들어 S = { 1 , 2, 3, 4 } 일때 부분집합(power set) = {{}, {1}, {2}, {1,2}, {3}, {1,3}, {2,3}, {1,2,3}, {4}, {1,4}, {2,4}, {1,2,4}, {3,4}, {1,3,4}, {2,3,4}, {1,2,3,4}} 이다. 따라서 임의의 유한집합에 대해서 그 크기가 |A| = n 이라고 할때, 부분집합의 개수는 2n 개가 된다. 그럼 컴퓨터에서 임의의 집합의 모든 부분집합을 출력하는 알고리즘은 어떻게 될까? 사실 생각해보면 { a, b, c, d, e, f } 의 모든 부분집합을 나열하려면 a 를 제외한 { b, c, d,..