티스토리 뷰
처음으로 파이썬을 만져본다....콘솔창에서 틱틱 적는게 불편해서
에딧플러스에서 설정해서 사용하고 있다. 흠 이렇게 하는게 맞나;;;--;;;아무튼
엔트로피를 계산하라...상당히 막연한 개념이다 왜하는지는...솔직히 잘모르겠다..ㅠ(난..공학도가아니다..)
아무튼 시작해보자.
간단하게 엔트로피란 것이 무엇인지 알고가자.
열역학적 엔트로피(entropy)는 열역학적 계의 상태 함수 가운데 하나로 독일의 물리학자 루돌프 클라우지우스가 1850년대 초에 엔트로피의 수학적 개념을 도입했다. 자연계는 엔트로피가 낮은 상태에서 높은 상태인 무질서로 변화한다.
음...그래...간단하게 무질서도를 나타낸다고 생각하면 될 듯하다.
무질서한 확율을 계산한다고 보면 될듯하다..... 친절하게 이렇게 공식도 나와 있다.
간단하게 동전을 던질때 엔트로피를 계산해보자면 앞면 0.5 뒷면 0.5 이렇게 동등하게 나올 확율이 있다.
p(x)에 확율을 넣어서 계산해보면 0.5(log0.5)+ 0.5(log0.5) = -log0.5 = log2 가 된다.
단순히 엔트로피 ( 0~ 1) 사이의 혼잡도라고 생각했는데 그게아니라.;;
정보엔트로피는 해당 문자열을 몇비트에 날릴 수 있는지 알려주는 것이다 ㅠ
이제 본론으로 들어와서 파이썬으로 짜보도록 하자.
내가 계산할 엔트로피는 오바마대통령의 연설문을 받아와서 각 문자의 아스키코드값을 이용 계산해서 전체 문자열의 엔트로피를 계산하려고 한다.
1. txt 파일에 있는 문자열을 가져와야 한다.
2. 가져온 문자를 가지고 각 아스키코드 값에 맞춰서 카운트 한다.
3. 총 갯수에서 각 아스키코드값을 계산해서 더한 후
4. 엔트로피를 출력한다.
import math
f = open('test.txt', 'r') #오바마연설문이 든 파일을 읽어온다 씨랑똑같네 -_-;
data = f.read() #데이타를 읽어온다음~
size = len(data) * 1.0 #문자열의 크기를 알아오는데 형변환을 위해 1.0을 곱하고
result = 0 #엔트로피를 받을 변수
arr = [] #각 문자 갯수를 받을 배열
for i in range (0, 128): #0~127개의 아스키코드값 돌아라
arr.append(data.count(chr(i))) #배열에 추가하는데 각 문자 아스키값더해가면서 자동 카운트 해라
str = "%c %d"%(chr(i), arr[i]) #한번찍어보자~printf라고 생각하면 될듯
print str #뿌려보고
if arr[i] != 0: #카운트값이 0이면 계산안해도되고~
result += arr[i]/size * math.log(arr[i]/size,2) #확율 계산하고 밑수는 볼츠만 상수로써 전체 수를 나타냄
result = result * -1.0 #마지막으로 식에서 -1* 안해준거 해주면 끝 ~!
print result
#결과는 0.3이 나온다 각문자의 엔트로피를 계산한것이다 크게 높지않은 것으로 봐서 특정 알파벳 이 자주 사용된다는 것을 알 수 있다. 뭐 당연히 아스키코드값에 잘안쓰는 것들이 들어있을 테니까 `ㅡ`;;
처음 파이썬을 다뤄봤는데 크게 불편한점은 없었다 물론-_-;;;씨하다가 갑자기 하려니..난감하기도 했지만
곧 익숙해지겠지뭐 ㅠ
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 메이저골프게임
- XNA 퍼즐게임
- C# 이미지매크로
- 모바일게임 매크로
- C# 듀랑고 매크로
- 안드로이드 게임
- 매크로
- 플래시
- 골프 게임
- 듀랑고 자동
- 안드로이드
- 비활성화 화면 캡쳐
- C# 매크로
- 안드로이드 개발
- 모모앱플레이어 매크로
- 매크로 강의
- 매크로 강좌
- C# 매크로 강의
- XNA 2D tutorial
- 이미지 찾기 매크로
- 듀랑고
- 메이저골프
- XNA
- MSP 프로젝트P
- 포토샵 에러
- 리니지m 매크로
- MSPproject
- 듀랑고 매크로
- XNA 3D tutorial
- xna 2D
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함