파이썬 (9) 썸네일형 리스트형 Chartjs를 사용해 효율적 투자선 그리기 - 3편 https://sieon-dev.tistory.com/41 Chartjs를 사용해 효율적 투자선 그리기 - 1편 포트폴리오 이론과 효율적 투자선에 대해선 제가 간단하게 소개한 글이 있으니 읽어주시면 감사하겠습니다. https://sieon-dev.tistory.com/40?category=989136 Harry Markowitz의 포트폴리오 이론과 효율적 투자. sieon-dev.tistory.com https://sieon-dev.tistory.com/42 Chartjs를 사용해 효율적 투자선 그리기 - 2편 1편을 참고해주세요. https://sieon-dev.tistory.com/41 Chartjs를 사용해 효율적 투자선 그리기 - 1편 포트폴리오 이론과 효율적 투자선에 대해선 제가 간단하게 소개한.. Chartjs를 사용해 효율적 투자선 그리기 - 2편 1편을 참고해주세요. https://sieon-dev.tistory.com/41 Chartjs를 사용해 효율적 투자선 그리기 - 1편 포트폴리오 이론과 효율적 투자선에 대해선 제가 간단하게 소개한 글이 있으니 읽어주시면 감사하겠습니다. https://sieon-dev.tistory.com/40?category=989136 Harry Markowitz의 포트폴리오 이론과 효율적 투자. sieon-dev.tistory.com *몇몇 과정에는 Jupyter Notebook에서 실행한 결과 화면이 첨부되어 있습니다. 주가 데이터 가져오기 주가 데이터는 FinanceDataReader 라이브러리를 사용해서 불러옵니다. samsung = fdr.DataReader('005930','2019-01-01', '2020.. Chartjs를 사용해 효율적 투자선 그리기 - 1편 포트폴리오 이론과 효율적 투자선에 대해선 제가 간단하게 소개한 글이 있으니 읽어주시면 감사하겠습니다. https://sieon-dev.tistory.com/40?category=989136 Harry Markowitz의 포트폴리오 이론과 효율적 투자선 현대 포트폴리오 이론 (Modern Portfolio Theory 이하 MPT) 포트폴리오 이론은 해리 마코위츠에 의해 체계화된 이론으로 자산을 분산투자하여 포트폴리오를 만들게 되면 분산투자 전보다 위험을 감소시 sieon-dev.tistory.com 개발환경 Backend : Python django Frontend : Chartjs, Jquery 개요 효율적 투자선이라는 개념이 쓰이는 웹사이트는 많이 없겠지만 웹 상에 차트나 그래프를 그릴 일은 많을 것.. [Python] BOJ 2004 조합 0의 개수 이 문제를 풀기 전에 팩토리얼과 승수의 관계를 알아야 한다. 예를 들어 5! 을 소인수 분해하면 2의 승수는 몇일까? 5! = 120이고 $ 2^3 \times 3 \times 5 $ 이기 때문에 3이 정답이다. 이를 컴퓨터가 계산하기 위해서 어떻게 해야 할까. 5! = $ 1 \times 2 \times 3 \times 4 \times 5 $ 반복문을 1부터 5까지 돌며 2로 나누어지는 수가 있으면 그 수가 1이 될 때까지 2로 나누어주고 나누어 줄 때마다 카운트를 올린다. 하지만, 문제에서는 M과 N의 범위가 20억까지 주어지기 때문에 이 방법은 시간 초과를 유발한다. 그렇다면 이 승수를 빠르게 계산하기 위한 방법이 필요한데 이는 다음과 같다. 5! 에서 2의 승수를 보기 위해서 5/2 + 5/4 +.. [Python] BOJ 1010 다리놓기 이 문제는 복잡하게 생각하면 절대로 못 푸는 문제다. 간단하게 강 동쪽 사이트에서 강 서쪽 사이트 개수를 뽑는 조합을 생각하면 된다. 조합인 이유는 문제에서도 나와있다시피 다리를 교차해서 놓을 수 없다. 예를 들어 N=2, M=5라고 할 때, M으로 연결할 수 있는 사이트 N개를 뽑는 조합과 같은데 다섯 개 중에 두개를 뽑는 조합의 수는 그림[1]의 경우와 그림 [2]의 경우가 같은 경우이기 때문에 자연스럽게 다리가 교차되는 것의 경우의 수는 빠지게 된다. 자바로 이 문제를 풀면 오버플로우 문제로 인해 복잡하게 동적계획법, 조합 이론 등을 사용해야 하지만 파이썬은 앞선 포스팅에서도 다뤘다시피 오버플로우 문제가 발생하지 않기 때문에 파이썬으로 구현하면 다음과 같다. def fact2(n,m): sum = .. [Python] BOJ 11051 이항 계수2 이 문제를 처음엔 자바로 풀려고 했지만 12! 이 넘어가면 int 형을 초과하고 20! 을 넘어가면 long 형을 초과하여 엉뚱한 숫자가 튀어나온다. 이를 해결하기 위해선 모듈러 증명과 페르마의 소정리에 대한 수학적 지식이 있어야 알고리즘으로 접근할 수 있다. 정석으로 풀기 위해선 이분 블로그를 참고하면 좋을 것 같다. https://st-lab.tistory.com/162 [백준] 11051번 : 이항 계수 2 - JAVA [자바] www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제 이전의 이항 계수 1 문제와 같은 문제다... [JAVA + Python] BOJ 2981 검문 왜 정답 비율이 저렇게 낮은지 알법한 문제였다. 처음엔 유클리드 호제법을 알지 못한 체 무작정 최대 공약수 구하다 보니 시간 초과가 정말 괴롭게 했다.. 수학적으로 접근하는 방법도 있지만 필자는 숫자들의 패턴을 보고 알고리즘에 접근했다. 예를 들어 N=2, 주어진 입력값은 [2, 12] 라고 할 때 M은 2, 5, 10이다 이를 보고 알아낸 것은 같은 M을 가지려면 두 수의 차의 약수를 구하면 되는구나라고 생각했다. 12-2 = 10이고 10의 공약수는 1을 뺀 2, 5, 10이 되기 때문이다. 만약 N=3 이고 2, 12, 18 가 주어진다면 M은 2 뿐이다. 2와 12의 차이는 10이고 18과 12의 차이는 6이기 때문에 10과 6의 최대 공약수는 2이고 최대 공약수의 약수 중 1을 제외하면 2만 남.. [JAVA + Python] BOJ 1934 최소공배수 간단하게 최소공배수를 구하는 문제이다. 이 문제는 자바랑 파이썬으로 동시에 풀어봤는데 그 실행시간의 차이가 커서 기록해두고자 한다. 우선 같은 알고리즘을 사용했다. 두 수 A와 B가 주어졌을 때 작은 값을 Min, 큰 값을 Max로 저장하고 반복문을 1부터 Min까지 하나씩 증가하면서(i라 하겠다) (Max*i)% Min==0 인 i값을 찾으면 break로 탈출하는 것이다. 파이썬으로 먼저 보면 다음과 같다. T = int(input()) for i in range (T): A, B = map(int, input().split()) Min = min(A,B) Max = max(A,B) for i in range(1,Min+1): if (Max*i)%Min==0: print(Max*i) break 코드의 .. 이전 1 2 다음