목록전체 글 (55)
EPI00 개발일지
zipfile이라는 기본 라이브러리도 있고, shutil 라이브러리를 통해 압축하는것도 가능하겠지만 굳이 pyminizip을 사용하려는 이유는 바로 압축파일에의 비밀번호다. 아마 검색을 통해 이 글에 들어온 사람들은 비밀번호 사용을 위해 pyminizip을 사용하려 했다가 오류가 났거나, 또는 파이썬으로 파일을 압축하는 방법을 찾기 위해 들어온 것일 것이다. pyminizip은 CMD 또는 터미널 등에서 다음 명령어로 설치할 수 있다 : pip install pyminizip 또는 python -m pip install pyminizip pyminizip.compress() 함수가 아마 가장 자주 쓰일 함수일 것 같고, 그 이상은 나도 찾아본적이 없어 적지 않겠다. 하지만 아마 pypi에서 pyminiz..
는 다른애들이 잘한게 아니라 내가 실수한거고... 과제 파일이 아니라 다른 파일을 제출함......... 기숙사 못들어가겠네 ㅎㅎ
교수님 강의 내용 중 틀린 내용을 지적해 제가 이겼습니다! 저를 가르치는 사람을 상대로 이겨먹는건 항상 재밌습니다. 짜릿해 늘새로워 연구실로 불려왔습니다! 프로젝트를 진행하고 있습니다! 교수님 그.... 저 아직 1학년입니다...... 그........ 1학년이라고요...............
보호되어 있는 글입니다.
내 방에 둘 탁상 or 벽시계를 만들고 싶었다 그런데 나의 그 어떠한 nerd함(또는 씹덕력)은 평범한 아날로그 시계나 7세그먼트를 이용한 디지털 시계를 거부했다. 그래서 구상한 시계다! 맨 처음에 구상했던 디자인이다. 굉장히 구리다.... 일단 저게 어떻게 시계인지 못알아볼 수 있으나, "이론상 열 손가락이면 0부터 1023까지 숫자를 셀 수 있는" 너드컴공은 알아볼 수 있을 것이다. n자리의 이진수는 0부터 (2^n)-1까지의 정수를 표현할 수 있다. 즉, 시간과 분은 그 값의 범위가 0~23, 0~59니까 각각 n=5인 0~31, n=6인 0~63범위에 들어간다. LED가 켜졌을 때 1, 꺼졌을 때 0을 의미한다 할 때, 이러한 원리로 LED 5개로 시간을, 6개로 분을 이진수로 표현할 수 있다. ..
## 문제 1-1. for i in range(1,16,2): print(i,end=', ') # 1부터 15까지 돌면서 i의 가장 오른쪽 비트가 1인지 확인하는 것보다 효율적인 알고리즘임. # 가장 오른쪽 비트가 1인 정수는 곧 범위 내의 모든 홀수이기 때문임. print('\n\n') ## 문제 1-2 # 최대 비트 자리수 m과 해당 비트의 수가 1인지 확인할 때 그 비트의 번호 n def bit1nums(n,m): r = [] for i in range(2**m): if i&(2**n): r.append(i) return r ## 문제 1-2-1 print('비트 0이 1인 수 :',bit1nums(0,4)) bit0is1 = bool(int(input('당신이 생각한 수가 위에 포함됩니까?')))..
Never gonna code it up https://drive.google.com/file/d/1z_0Eqaddf8igLh8i2bMHFCP1w8FSrLVz/view?usp=sharing DancingRick.zip drive.google.com 사용 언어 : 파이썬 3.9.10 제작기간 : 2022년 03월 15일 11시~12시 쯤 기능 : - 화면에 춤추는 릭 애슬리를 띄웁니다. - 릭을 클릭하여 릭 애슬리의 노래 "Never gonna give you up"을 재생합니다. - 릭을 더블클릭하여 릭 애슬리의 노래 "Never gonna give you up"의 Youtube 페이지를 엽니다. 실행방법 : 압축해제 후 DancingRick.exe 파일을 실행합니다.
생존신고 겸.... 막상 개강하니까 할 일이 지나치게 없어서 이런거나 만들고 있었답니다 PSD 파일 하나에 23메가바이트ㅋㅋㅋㅋㅋ 지도 두장의 차이는 하난 로드뷰로 찍은 사진이 첨부되어있다는 것입니다.
https://www.youtube.com/watch?v=e4U4fd6ucpY Ren'Py라는 엔진? 비스무리한것을 이용했기 때문에 코드는 그리 길지 않다. 제작 기간 : 2021.09.22 오전 ~ 2021.09.22 20시 40분 사용 언어 : Python, Ren'Py language 다운로드 : https://drive.google.com/file/d/13wbHz4k8KTNmwPccTHJHaBbavi4Wh_8j/view?usp=sharing cuora_numbaseball.zip drive.google.com 더보기 https://www.ijemin.com/blog/렌파이와-파이썬/ 위 페이지의 내용을 잘 보면, 이런 내용이 있는데, Ren'Py에서의 파이썬 사용법을 하루빨리 손에 익혀 파이썬으로..
순열, 조합, 중복순열, 중복조합을 계산하는 공식이다. 사실 저게 각각 뭘 의미했는지는 이미 다 까먹었지만, 아무튼 저 공식대로 계산하면 그 값을 구할 수 있다. 그래서 이걸 파이썬으로 구현할건데, 각각 함수로써 구현을 할 것이다. 단, 중복조합은 조합을 이용해 계산하고, 조합은 순열을 이용해 계산하는 방식으로 할 것인데, 순열의 계산 과정에서 팩토리얼이 필요하니....팩토리얼도 따로 함수로 구현하는 것이 편할 것이다. 그래서 완성한 함수들이다 : def fac(n):#팩토리얼 r = 1 for i in range(n): r *= (i+1) return r def P(n,r):#nPr return fac(n)/fac(n-r) def C(n,r):#nCr return P(n,r)/fac(r) def Pi(..
이전에 C++로 다항함수를 구분구적법을 이용해 정적분 값을 구하는 코드를 짰었다. 솔직히 삼각함수도 가능은 했었는데 그걸 굳이 C++로 만드는 건 시간 낭비라 생각했고, 오늘은 삼각함수도 가능한 코드를 파이썬으로 작성했다. 사용 언어 : Python 3.7.4 제작 기간 : 2021년 07월 25일 오전 11시 ~ 오후 12시 10분 코드 : 더보기 import math A = 0.000001 tfs = ['sin', 'cos', 'tan', 'sec', 'csc', 'cot'] def f(a, l): r = 0 wast = False for i in range(len(l)): if wast: wast=False continue s = l[i] t = False for j in tfs: if j == s..
오늘 동아리 시간에 다항함수 미분을 80줄이나 사용하며 만든 친구를 엿먹이기 위해 만들었다. 근데 사실 걔가 나처럼 코딩에 반쯤 미쳐있는 것도 아닌지라 80줄이고 100줄이고 다항함수 미분 구현했다는 점이 대단한 부분이긴 한데, 아무튼 난 내 실력을 과시하고 싶었다. 사실 실력이고 뭐고 적분법 쓴게 아니라 구분구적법으로 구현한거라 그친구가 만든 미분 프로그램보단 난이도가 쉽다. 그친구는 미분법을 썼으니까. 사용 언어 : C++ 제작기간 : 21년 7월 14일 오전 11시 50분 ~ 오후 12시 40분 (사실 당시 오류 해결 못해서 밥먹고와서 다시짜긴 했으나 다시짜기 시작해서 10초만에 문제점을 수정했으니 이건 무시 가능할 것이다) 코드 : #include #include > #define A 0.0000..
동아리 축제 때 전시(사실상은 Zoom을 통한 랜선 시연)할 프로그램을 만들어야 했는데, 이 때 우리 동아리에서 나온 여러개의 아이디어 중 코드를 퍼즐처럼 순서를 맞추며 실행해보는 그런걸 해보면 어떻겠냐는 아이디어를 실현했다. 개발 기간 : 2021년 06월 16일 13시 15분 ~ 16시 30분 사용 언어 : Python 3.7.4 (C를 통해 구동되는 Python으로 C 교육용 프로그램을 만들었다는 부분이 유머) 소스 코드 : https://github.com/dpvpd/code_order 프로그램 다운로드 : https://drive.google.com/file/d/1taB9YK701AZwMjRwf0wE_6xEd6h2L61G/view?usp=sharing LearnC.zip drive.google...
일단 이 식이 정규분포 N(m, σ²)를 따르는 확률변수 x의 학률밀도함수라는 것은 아마 하늘이 알고 땅이 알고 나도 아는 사실일 것이다. 표준정규분포는 N(0, 1)의 정규분포를 의미하는데, m=0, σ=1일 때의 확률밀도함수는 다음과 같다. 왜 굳이 이걸 쓰느냐? 우선, 정규분포의 확률밀도함수를 적분해 그 면적(어차피 양수값밖에 없으니 넓이라 해도 무방)을 구하면 그 면적이 곧 해당 범위에서의 확률이 되는데, 저 위의 저 식을 정적분 하는 것 보다 이 식을 정적분 하는 편이 더 쉽기 때문이다. 더보기 맞는지는 잘 모르겠지만, 이렇게 적분이 된다. 2021. 06. 13 추가 : 저거 적분 틀렸다. -z/-z를 곱하고 1/-z을 상수취급 하는거부터 틀림. 아니, t=-z^2/2부터 틀렸을지도. 하지만 ..
ARM arm armed 암 21년 5월 31일 4교시 영어권 문화 시간에 썜이 'armed'라는 단어를 설명하시길래 떠올라서 그린 그림
아까 1교시 끝난 뒤 쉬는시간에 이항분포 프로그램을 만들었었는데, 2교시가 마침 확통이었고 우연히도 정규분포 진도를 나갔었고, 심지어 수업도 10분정도 남기고 빨리 끝나서 수업시간에 만들어봤다. 사용 언어: Python 3.7.4 제작기간 : 21년5월 31일 오전 10시 30분 ~ 오전 10시 40분 https://github.com/dpvpd/normal_distribution dpvpd/normal_distribution 정규분포 그래프. Contribute to dpvpd/normal_distribution development by creating an account on GitHub. github.com 마찬가지로 파이썬 코드와 Qt Ui파일, 그리고 Pyinstaller로 빌드한 exe파일을..
확률과 통계 교과를 배우다 떠올렸다. 사용 언어 : Python 3.7.4 제작기간 : 21년5월 31일 오전 9시 40분 ~ 오전 9시 52분 (쉬는시간 2분 초과했지만 2교시 확통쌤 조금 늦게오셔서 괜찮았을지도) https://github.com/dpvpd/binomial_distribution dpvpd/binomial_distribution 이항분포의 기댓값, 분산, 표준편차 및 확률질량함수를 계산. Contribute to dpvpd/binomial_distribution development by creating an account on GitHub. github.com 파이썬 코드와 Qt Ui파일, 그리고 Pyinstaller로 빌드한 exe파일을 올려뒀다. exe파일 혼자선 실행 안되고 같..
이런 내용의 엑셀 파일에 대해 이렇게 사진을 출력하는 프로그램이다. 누군가의 의뢰로 만들었다. 배포할 생각 없다. 돈받고 만들었는데 양심이 있지.... 이걸 배포하면 그사람은 헛돈 쓴 게 되므로 배포할 생각은 없다. 근데 사실 저게 저 용도 되에 딱히 다른 용도로 쓰일 곳이 있나 싶다.
오일러 상수, 자연 상수라 불리는 e. 그 값은 대략 2.718....으로, 무리수다. 현 교육과정에선 고등학교 미적분 교과에서 처음으로 나오며(물론 확률과 통계 교과에서도 나오나, 미적분에선 1단원부터, 확통에선 3단원에 잠깐 나온다), 그 계산 방법은 간단하다. 1에 n분의 1을 더한 뒤 그 값을 n제곱 하는 것에 대하여 n을 극한으로 보내는 것이다. 수식이 간단하듯 코드도 간단한데, 참고로, 윈도우 10에 기본 탑재된 계산기에선 e의 값이 라고 한다. n이 32비트 정수의 최댓값인 2,147,483,647일 때의 e의 값은 실제 e의 값과 소숫점 아래 8자리까지 동일하다. 6줄짜리 코드. 심지어 맨 윗줄과 맨 아랫은 굳이 없어도 되는 부분.
나의 셋째 외삼촌께선 육류 유통업에 종사하신다. 현재 사용중이신 프로그램의 거래명세서에 약간의 불만이 있으셔서, 나에게 제작을 의뢰하셨다. 그리고 만들었다. 별 거 아닌 것 같아보이지만, 실제로 코드도 별로 안 길다. 1292줄밖에 안된다. 이게 왜 긴 것이 아니냐면, 이걸 만들 당시 나는 PyQt5를 처음 접한 상태였고, UI 구성하는 법도 잘 몰라서, QtDesigner로 디자인 한 UI를 그대로 pyuic 돌려서 .ui에서 .py로 바꾼 뒤 그 .py에 작동 코드를 추가한 것이었기 때문에, 당연히 코드가 길어질 수 밖에 없다. 지금이라면 QtDesigner로 디자인한 .ui파일을 그냥 파이썬에서 uic.loadUiType()으로 로드해서 쓸텐데. 아무튼, 실제로 작동을 위한 코드는 1292줄 중에 ..
개념 설명 원숭이에게 타자기를 준 뒤, 충분한 시간을 주면 원숭이는 거의 확실하게 셰익스피어의 희곡을 쳐낼 것이다. 라는 것이 '무한 원숭이 정리'라는 것의 기초 개념이다. 뭐 보렐-칸텔리 보조정리니 뭐니 하는 것이 있는데, 잘 모르겠고 대충 확률이 0이 아닌 사건에 대해 무한대의 시행을 진행했을 때 그 사건은 반드시 일어난다는 내용인 것 같다. 이 정리에 대한 증명은.... 위키피디아에 잘 나와 있는 것 같다. 잘 모르겠으니 난 그냥 프로그램으로 시도해보려 한다. 코드 코드는 짧고, 구조는 간단하다. 한글 글자를 넣은 하나의 파이썬 리스트를 만들고, 이 리스트에서 랜덤하게 두 글자를 뽑아 나오는 단어가 말이 되는 단어인지 보고자 한다. 마음같아서는 모든 한글 글자를 넣고 싶었지만, 힘들다. 무려 9,7..