일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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-O 예제
- matrix trnasformations
- trivial solution
- linear dependence
- 빅오메가
- Big Omega
- nontrivial solution
- 빅오 표기법
- solutions of matrix equation
- NumPy
- 알고리즘 분석의 실례
- Big Theta
- 코틀린 Hello World!
- one-to-one
- 빅세타
- homogeneous linear system
- matrix fo a linear transformation
- 코틀린 시작하기
- 재귀함수
- matrix-vector product
- itertools
- nonhomogeneous linear system
- 이진 탐색
- python
- Big-Oh 예제
- recursive algorithms
- 일차변환
- Big-Oh notation
- 랜덤 순서 배열
- Today
- Total
목록2017/03/21 (2)
코딩 연습
파이썬의 itertools 모듈에는 다음과 같은 count 라는 함수가 있다. def count(start=0, step=1): # count(10) --> 10 11 12 13 14 ... # count(2.5, 0.5) -> 2.5 3.0 3.5 ... n = start while True: yield n n += step 위에서 보는 바와 같이 함수 count 는 두 개의 매개 변수 start 와 step 을 갖고, 이들의 기본값(default value)는 각각 0과 1로 설정되어 있다. 함수의 설명에서 알 수 있듯이 count 함수는 start 로부터 시작하여 step 만큼 떨어진 수들을 무한히 생성하는 무한 반복자를 리턴한다. 다음의 예제를 보면 쉽게 이해할 수 있다. >>> for i in ..
\(1, 2, 3, 4, 5\) 를 나열하는 순열의 수는 \(5!=120\) 가지로 금방 계산할 수 있지만, 실제로 \(120\) 를 나열하는 것은 사람이 하기 힘든 일이다. 컴퓨터로 하면 금방 될거라고 생각했는데, 생각만큼 쉽지는 않았다. 이런 저런 방법들을 생각해 보다가 결국 함수를 재귀적으로 사용하는 방법으로 결정을 했는데, 나열해야 하는 숫자가 많아질수록 시간이 좀 많이 걸리는 것 같다. 그래도 지금 수준에서 찾아낼 수있는 최선의 방법인거 같아 기록을 남긴다.새로운 방법을 배우고야 말았다. 그래서 두 가지 방법을 모두 소개하기로 한다. 1. 재귀함수를 이용하는 방법 기본적인 아이디어는 간단한다. 1 한 개를 나열하는 방법은 당연히 (1) 한 가지다. 1, 2 두 개를 나열하는 방법은 맨 앞자리가 ..