Python
-
(파이썬) 몬테카를로 방법으로 원주율 구하기Python/파이썬 자료구조 알고리듬 2020. 9. 27. 23:35
몬테카를로 방법(Monte Carlo Method): 무작위수와 모의 실험을 통해 문제를 해석, 해결. ---------- 위 그림에서 원의 반지름을 r 이라고 하면, 원의 면적은 pi * r ** 2 (파이 * r의 제곱)입니다. 정사각형(한 변이 2 * r)의 넓이는 (2 * r) ** 2입니다. 위 '정사각형'에 랜덤으로 점을 찍을 때 '원의 중심과의 거리가 r 이하인 점'의 확률은 '(원의 면적) / (정사각형의 면적)' 입니다. 이것을 이용해서 원주율(pi)를 구할 수 있습니다. 정사각형에 랜덤으로 점을 찍을 때, 내접하는 원의 중심과의 거리가 r 이하인 점의 확률 = (원의 면적) / (정사각형의 면적) = (pi * (r ** 2)) / ((2 * r) ** 2) = (pi * (r ** 2..
-
(파이썬) 몬티 홀 문제(Monty Hall problem)Python/파이썬 자료구조 알고리듬 2020. 9. 19. 16:57
공부가 짧아서이런 랜덤과 확률을 이용한 시뮬레이션도족보 있는 알고리듬인 줄 몰랐습니다. 이런 식으로 푸는 걸 몬테 카를로 방법이라고 하더군요. 몬테 카를로 방법(Monte Carlo method)무작위 수와 확률과 모의실험(시뮬레이션)을 통해 문제를 해석하고 해결함. 몬티홀 문제는사고 실험으로만 이해하기는 다소 혼란스럽지만...간단히 코딩할 수 있고...코딩을 하면 좀 더 이해가 쉬워지는 것 같습니다...https://namu.wiki/w/%EB%AA%AC%ED%8B%B0%20%ED%99%80%20%EB%AC%B8%EC%A0%9C 몬티 홀 문제 - 나무위키Suppose you’re on a game show, and you’re given the choice of three door..
-
네이버 금융(시세)에서 주가 갈무리(크롤링)하기Python/파이썬과 주식 2019. 11. 6. 23:36
* 투자용으로 사용하지 마십시오. 네이버 금융의 개별 종목에는 시세라는 항목이 있습니다. https://finance.naver.com/item/sise.nhn?code=005930 쭉 내려보면 일별 시세라는 항목이 있습니다. ㅇㅇ 이걸 크롤링하면 되겠죠? 이 항목의 HTML을 보면 iframe로 되어 있네요. iframe의 주소는 src="/item/sise_day.nhn?code=005930" 입니다. https://finance.naver.com/item/sise_day.nhn?code=005930 즉 위 주소를 방문해보면 다음 화면을 볼 수 있는 거죠. 아래에 페이지 목록을 클릭해보면 주소가 다음과 같이 변합니다. https://finance.naver.com/item/sise_day.nhn?co..
-
네이버 금융(차트)에서 주가 갈무리(크롤링)하기Python/파이썬과 주식 2019. 11. 5. 23:32
* 투자용으로 사용하지 마십시오. 네이버 금융에는 플래시를 이용한 차트 서비스가 있습니다. https://finance.naver.com/item/fchart.nhn?code=005930 크롬의 네트워크 모니터를 켜고 위 화면의 일봉을 클릭하면 다음 화면을 볼 수 있고... 여기서 다음 주소를 찾을 수 있습니다. https://fchart.stock.naver.com/sise.nhn?symbol=005930&timeframe=day&count=1500&requestType=0 위 주소에 들어가 보면 XML형식의 삼성전자 일봉을 볼 수 있습니다. 카운트를 늘리니 최대 1990년 01월 03일 데이터까지 볼 수 있네요.. 그런데 1990년 1월부터 2월까지의 데이터가 좀 이상합니다. 4만원대군요.. 다른 데..
-
KRX에서 상장 회사 검색 갈무리(크롤링)하는 법Python/파이썬과 주식 2019. 11. 4. 23:05
* KRX의 정책의 변화에 따라 작동되지 않을 수도 있습니다. * 실제 투자에 사용하지 마십시오. 앞서 알려드린 KIND의 본진이죠? 한국거래소(KRX)에서도 상장회사 검색을 통해 목록을 구할 수 있습니다. http://marketdata.krx.co.kr/mdi#document=040601 KIND의 목록보다 좀 더 유용한 정보(상장주식수, 자본금)가 많고 깔끔하네요. 이 화면에서 엑셀 파일을 받으신 뒤 파이썬으로 데이터를 정리하셔도 좋을 것 같습니다만... (이걸 추천합니다.) 바로 파이썬에서 엑셀 데이터를 가져올 수도 있습니다. (복잡해요.) 파이썬의 기본 패키지인 io의 BytesIO를 이용하면 메모리에 있는 bytes 데이터(b'문자열')를 파일처럼 이용할 수 있습니다. 일단 위 화면에서 엑셀 ..
-
KIND에서 상장 법인 목록 갈무리(크롤링)하는 법Python/파이썬과 주식 2019. 11. 3. 11:58
* KIND의 정책의 변화에 따라 작동되지 않을 수도 있습니다. * 실제 투자에 사용하지 마십시오. 한국거래소(KRX)의 기업공시채널인 KIND에 가보면 '상장법인목록'을 조회할 수 있습니다. http://kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage 다음 화면을 볼 수 있죠. 이 화면에서 바로 엑셀 파일을 받아서 사용할 수도 있습니다만... 엑셀파일을 하드에 저장하지 않고, 바로 파이썬에서 처리하도록 해봅시다. 크롬에서 F12를 눌러서 Network 탭을 선택합니다. 이 상태에서 EXCEL 버튼을 누르면, 네트워크 탭에서 corpList.do라는 항목을 볼 수 있습니다. corpList.do를 클릭하면 리퀘스트 URL과 리퀘스트 시 전송된 Fo..
-
네이버 금융에서 ETF 목록 갈무리(크롤링)하는 법Python/파이썬과 주식 2019. 11. 2. 22:06
1990년대 PC 통신이 유행하던 시절, PC 통신 유저들은 순한글 용어를 많이 썼습니다. 당시 단말기 화면에 출력되는 TEXT들을 TEXT 파일로 저장하는 걸 갈무리(캡쳐)라고 했었는데요. 크롤링 대신 사용해도 괜찮을 것 같지 않나요? * 네이버 정책의 변화에 따라 작동되지 않을 수도 있습니다. * 실제 투자에 사용하지 마십시오. 네이버 금융 > 국내증시 > ETF 페이지에 ETF 전체 목록이 있습니다. https://finance.naver.com/sise/etf.nhn 1. 이것을 셀레니움을 이용해 크롤링하는 방법도 있습니다만..... 2. 조금 더 깔끔한 방법이 있습니다. 크롬에서 F12로 소스를 열어봅니다. AJAX를 이용해 ETF 리스트 테이블을 업데이트 하네요. ^^ 친절하게 주소와 매개변수..
-
(파이썬) 가장 큰 정사각형 찾기 - 동적계획법Python/파이썬 자료구조 알고리듬 2019. 9. 28. 14:29
https://programmers.co.kr/learn/courses/30/lessons/12905 전형적인 동적 계획법 문제입니다. 정사각형의 면적을 동적 계획법 스타일로 처리하는 게 관건이죠. 주어진 2차원 배열을 그대로 사용하고 대각선 방향, 좌-우, 상-하 셀의 관계를 생각해 봅니다. 아래 소스를 보시기 전에 직접 표를 작성하면서 아이디어를 떠올려 보세요. 꼭꼭~!!! 동적 계획법 문제는 표 작성 중에 해법이 떠오르는 경우가 많습니다. def solution(board): for i in range(1, len(board)): for j in range(1, len(board[0])): if board[i][j] == 1: board[i][j] = 1 + min(board[i-1][j], boa..