1948년 클로드 섀넌(Claude E. Shannon)은 논문 통신의 수학적 이론(The Mathematical Theory of Communication)에서 이산 확률 분포 p1,…,pn의 엔트로피를 정의하는 유명한 공식을 제시했다.
H=−∑ipilog2pi.
이 공식을 문자열에 적용하기 위해, pi를 문자열에서 각 문자가 등장하는 상대 빈도로 둔다. 예를 들어 길이가 38인 문자열 Northeastern European Regional Contest(공백 3개 포함)의 엔트로피는 소수점 아래 셋째 자리까지 반올림하면 3.883이다. 아래 표는 이 문자열의 각 문자에 대한 상대 빈도 pi와 엔트로피의 각 항 −pilog2pi를 보여 준다.
| 문자 | 등장 횟수 | pi | −pilog2pi | 문자 | 등장 횟수 | pi | −pilog2pi |
|---|---|---|---|---|---|---|---|
| 공백 | 3 | 0.079 | 0.289 | i | 1 | 0.026 | 0.138 |
| C | 1 | 0.026 | 0.138 | l | 1 | 0.026 | 0.138 |
| E | 1 | 0.026 | 0.138 | n | 4 | 0.105 | 0.342 |
| N | 1 | 0.026 | 0.138 | o | 4 | 0.105 | 0.342 |
| R | 1 | 0.026 | 0.138 | p | 1 | 0.026 | 0.138 |
| a | 3 | 0.079 | 0.289 | r | 3 | 0.079 | 0.289 |
| e | 5 | 0.132 | 0.385 | s | 2 | 0.053 | 0.224 |
| g | 1 | 0.026 | 0.138 | t | 4 | 0.105 | 0.342 |
| h | 1 | 0.026 | 0.138 | u | 1 | 0.026 | 0.138 |
주어진 문자열의 엔트로피를 계산하라.
입력은 한 줄로 이루어지며, 길이가 1 이상 1000 이하인 문자열이 주어진다. 문자열의 각 문자는 0–9, a–z, A–Z, .(마침표), 공백 중 하나이다. 앞, 중간, 뒤에 오는 공백도 모두 문자열의 일부이다.
입력 문자열의 엔트로피 H=−∑ipilog2pi를 한 줄에 출력한다. 여기서 pi는 각 문자의 상대 빈도이다. 답은 소수점 아래 셋째 자리까지 반올림하여 출력한다.