일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Big-Oh 예제
- 재귀함수
- nontrivial solution
- matrix trnasformations
- Big-O 예제
- NumPy
- 빅오 표기법
- Big Omega
- matrix fo a linear transformation
- Big-Oh notation
- 빅오메가
- homogeneous linear system
- 배열 섞기
- 이진 탐색
- 일차변환
- 코틀린 시작하기
- one-to-one
- linear dependence
- 랜덤 순서 배열
- 알고리즘 분석의 실례
- itertools
- 빅세타
- python
- nonhomogeneous linear system
- Big Theta
- recursive algorithms
- matrix-vector product
- 코틀린 Hello World!
- trivial solution
- solutions of matrix equation
- Today
- Total
코딩 연습
프로그래밍을 이용하여 수학문제를 풀때 의외로 소인수 분해를 해야할 일이 많아진다. 소인수 분해의 원리는 다들 잘 알고 있으리라 생각된다. 일단 소수들의 리스트를 만들어 놓고, 그것들을 하나씩 불러내서 소인수 분해 하고자 하는 수를 나누어 떨어지는 동안 계속 나눈다. 나누어 떨어지지 않게 되면 소수들의 리스트에서 다음 소수를 불러내 똑같은 작업을 반복한다. 이 작업을 몫이 1이 될때까지 계속한다. 예를 들어, 80을 소인수분해 하면 (몫, 소인수)가 다음과 같이 변해 갈 것이다. (40, 2) (20, 2) (10, 2) (5, 2) 이제 5는 2로 나누어 떨어지지 않으므로 3을 불러낸다. 그러나 5는 3으로도 나누어 떨어지지 않으므로 5를 불러낸다. (1, 5) 이제 몫이 1이 되었으므로 소인수 분해를 ..
순열의 경우를 나열하는 것과 조합의 경우를 나열하는 것은 비슷한 듯 비슷하지 않은것 같다. 일단 원리는 다음과 같다. abcde 중 3개를 선택하는 조합을 생각한다면 먼저 abc 가 될 수 있고, 이제 마지막 알파벳을 하나씩 오른쪽으로 옮겨가며 선택한다. 그래서 얻을 수 있는 것이 abd, abe가 된다. 알파벳이 마지막까지 오게 되면 이제 알파벳 b을 오른쪽으로 옮겨 똑 같은 작업을 반복한다. 그래서 얻을 수 있는 것이 acd, ace가 된다. 다시 c를 오른쪽으로 한 칸 옮기면 ade가 선택된다. 이제 a를 오른쪽으로 한 칸 옮겨 같은 작업을 반복한다. 그래서 얻을 수 있는 것이 bcd, bce가 되고, 다시 c를 오른쪽으로 한 칸 옮겨 얻는 것이 bde가 된다. 마지막으로 b를 한 칸 오른쪽으로 옮..