일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재귀함수
- includepdf
- python
- trivial solution
- Big Omega
- Big-O 예제
- itertools
- homogeneous linear system
- matrix trnasformations
- matrix fo a linear transformation
- 빅세타
- nontrivial solution
- 이진 탐색
- 일차변환
- one-to-one
- Big-Oh 예제
- 배열 섞기
- recursive algorithms
- Big Theta
- 빅오 표기법
- 코틀린 Hello World!
- Big-Oh notation
- NumPy
- linear dependence
- 코틀린 시작하기
- 알고리즘 분석의 실례
- 빅오메가
- 랜덤 순서 배열
- 페이지 겹칩
- nonhomogeneous linear system
- Today
- Total
목록분류 전체보기 (158)
코딩 연습
파이썬에서 집합을 표현하기 위해서는 다음과 같이 sympy 패키지의 FiniteSet 클래스를 이용하면 된다. >>> from sympy import FiniteSet >>> A = FiniteSet(1, 2, 3, 4, 5) >>> A {1, 2, 3, 4, 5} 공집합을 정의하고 싶거나 일반적인 리스트를 집합으로 표현하고 싶다면 다음과 같이 하면 된다. >>> B=FiniteSet() >>> B EmptySet() >>> elements = ['a', 'b', 'c'] >>> C = FiniteSet(*elements) >>> C {a, b, c} 집합의 원소의 개수를 알고 싶다면 우리에게 친숙한 len() 함수를 사용하면 된다. >>> len(A) 5 원소와 집합의 포함관계 즉, \(1 \in A\..
파이썬을 이용하여 방정식을 푸는 방법에 대해 알아 보자. 방정식을 풀기 위해서는 solve() 함수가 필요하다. 다음의 예제를 보자. >>> from sympy import Symbol, solve >>> x=Symbol('x') >>> equation = 2 * x - 6 >>> solve(equation) [3] 예제에서 볼 수 있듯이 solve(equation)은 equation = 0 이라는 방정식을 풀어서 그 근을 리스트로 반환해 준다. 이차방정식의 경우는 어떻게 되는지 보자. >>> equation = x ** 2 + 3 * x + 2 >>> solve(equation) [-2, -1] >>> solve(equation, dict=True) [{x: -2}, {x: -1}] 이차방정식의 경우도..
mathematica 나 MS mathematics 에서는 \((x+1)^2\)의 결과로 \(x^2 +2x+1\) 을 얻는 것이 가능하지만, 일반적인 프로그래밍 언어에서는 이런 결과를 어떻게 얻어야 할지 모르는 경우가 대부분이다. (아니면 나만 몰랐던가 ㅠㅠ) 파이썬에서 다항식의 계산을 어떤 식으로 할 수 있는지에 대해서 알아 보자. >>> x = 1 >>> (x + 1) ** 2 4 위와 같은 결과를 얻는 것은 지극히 당연해 보인다. 그렇다면 \((x+1)^2\) 이 전개된 결과를 얻고 싶다면 어떻게 해야할까? 이럴 때 사용할 수 있는 것이 sympy 모듈의 Symbol 클래스이다. 사용법은 다음과 같다. >>> from sympy import Symbol >>> x = Symbol('x') >>> x..
파이썬을 이용하여 최빈값(mode)를 구하기 위해서는 collections 모듈의 Counter 클래스를 알고 있어야 한다. Counter는 사전(dict) 클래스의 하위 클래스로 리스트나 튜플에서 각 데이터가 등장한 횟수를 사전 형식으로 돌려준다. 예를 들면 다음과 같다. >>> from collections import Counter >>> colors = ['red', 'blue', 'red', 'green', 'blue', 'blue'] >>> cnt = Counter(colors) >>> cnt Counter({'blue': 3, 'red': 2, 'green': 1}) 또한 Counter 클래스의 most_common() 메쏘드는 등장한 횟수를 내림차순으로 정리하여 다음과 같이 보여준다. >>..
파이썬을 이용한 막대 그래프 그리기에 대해 알아보겠다. 예제에서는 KOSIS에서 얻은 2010년부터 2014년까지의 서울지역 평균기온을 사용하였다. 다음의 코드를 barchart.py 로 저장한 후, 터미널에서 python barchart.py를 해주면 그래프를 볼 수 있다. import matplotlib.pyplot as plt def barchart(data, labels): num_bars = len(data) positions = range(1, num_bars + 1) plt.barh(positions, data, align='center') plt.yticks(positions, labels) plt.xlabel('Temperature') plt.ylabel('Year') plt.title(..
꺽은선 그래프 그리기 를 공부하였다면 이제는 함수식을 이용하여 그래프 그리기에 도전해 볼 차례다. 여기서는 이차함수 \(y=ax^2+bx+c\) 의 그래프 그리기를 예제로 함수의 그래프를 어떻게 그리는지 알아보겠다. 이를 위하여 사용자로부터 계수 \(a, \;b,\;c\) 와 그래프를 그릴 \(x\) 의 범위 \(x{\rm min},\; x{\rm max}\) 를 입력받아 이차함수의 그래프를 완성해 볼 것이다. 다음은 이를 위한 파이썬 코드이다. 다음 코드를 quadraticgraph.py 로 저장한 후, 터미널에서 python quadraticgraph.py 를 해 보면 그래프가 보이 것이다. from matplotlib import pyplot as mplp def draw_graph(x, y): m..
------------ 사전 설치 작업 ------------ 파이썬을 이용하여 그래프를 그리려면 먼저 해당 패키지를 설치해야 한다. 이러한 패키지를 모아서 한 번에 설치하게 해주는 것이 바로 anaconda이다. 따라서 우리는 먼저 anaconda를 설치해야 한다. anaconda는 여기 에서 다운로드 받을 수 있다. 윈도우의 경우에는 다운로드 파일을 그냥 실행시켜주면 되고, 리눅스의 경우는 다운로드된 파일이 있는 디렉토리도 이동하여 bash Anaconda3-2.3.*-Linux-x86 _ 64.sh 명령을 실행해 주면 된다. (물론 * 부분은 자신이 다운로드 받은 버전에 맞게 수정) 이후에 나오는 질문에 대해서는 모두 yes 라고 치고 엔터키를 누르면 된다. 그리고 나서 sympy 를 설치하기 위해..
파이썬에서 복소수를 표현하는 방법은 두 가지가 있다. >>> a = 2 + 3j >>> b=complex(3, -4) >>> a (2+3j) >>> b (3-4j) 파이썬에서는 imaginary number의 약자 \(i\) 대산 \(j\) 나 혹은 \(J\) 를 사용한다. 그래서 직접 \(a=2+3j\) 와 같이 표현할 수도 있고, 혹은 \(b={\rm complex}(3, -4)\) 처럼 실수부와 허수부를 구분하여 표현할 수도 있다. 또한 실수부와 허수부를 따로 불러낼 수도 있다. >>> b.real 3.0 >>> b.imag -4.0 그리고 상식적 수준에서 다음과 같이 복소수의 연산이 가능하다. >>> a + b (5-1j) >>> a - b (-1+7j) >>> a * b (18+1j) >>> a..
여러 문제를 풀다 보면 분수를 가지고 계산을 해야 할 때가 있다. 예를 들어, \(\dfrac{1}{2} + \dfrac{1}{3}\) 의 결과로 우리가 원하는 것은 \(\dfrac{5}{6}\) 이지만 거의 모든 계산기에서 결과는 \(0.83333333333334\) 로 표시된다. 즉, 결과 자체도 분수 형태로 받고 싶지만 그게 내 맘대로 안되는 것이다. 그래서 결국 분자, 분모를 이용하여 분수 계산을 해주는 함수를 따로 만들어 사용하곤 했었는데, 알고 보니 파이썬 기본 모듈에 이런 분수의 계산을 해주는 것이 있는 걸 알게 되었다. 사용법은 다음과 같다. 먼저 \(\rm fractions\) 모듈에서 \(\rm Fraction\) 클래스를 \(\rm import\) 한다. 분수 \(\dfrac{1}{2..
프로젝트 오일러 문제를 풀다보면 두 자연수의 최대공약수를 구해야 하는 경우가 빈번히 발생한다. 이때 유클리드 알고리즘(유클리드 호제법)을 이용하여 쉽게 최대공약수를 구하는 함수를 소개하고자 한다. def gcd(a, b): if a < b: (a, b) = (b, a) while b != 0: (a, b) = (b, a % b) return a 먼저 \(a\) 쪽이 항상 크도록 해주고, \(a\)와 \(b\) 의 최대공약수는 \(b\)와 \(a\) 를 \(b\)로 나눈 나머지와의 최대공약수와 같기 때문에, 나머지가 \(0\) 이 될때까지 이 작업을 반복해 준다. \(b\) (=나머지)가 \(0\) 일 때의 \(a\) 값이 \(a, \;b\) 의 최대공약수가 된다.