Professional Documents
Culture Documents
Tik Lab1
Tik Lab1
Лабораторна робота № 1
з курсу «Теорії інформації кодування»
на тему «Визначення кількості інформації
в дискретних повідомленнях»
Виконала студентка
Групи ДА-02
Лесечко О.Р
Київ 2022
Мета роботи: Засвоїти основні відомості з методів вимірювання
обсягу інформації. Отримати навички оцінювання збитковості
інформації та засобів її подолання.
Хід роботи
Завдання 1
Пункт 1. Визначити статистичні характеристики повідомлення , яке
складається з вашого ФІО: вірогідності символів, побудувати
гістограму вірогідностей.
Кількість P[i]
a 3 0,12 0,3670672427
c 1 0,04 0,1857542476
e 3 0,12 0,3670672427
h 1 0,04 0,1857542476
i 2 0,08 0,2915084952
k 1 0,04 0,1857542476
L 1 0,04 0,1857542476
l 1 0,04 0,1857542476
m 1 0,04 0,1857542476
n 2 0,08 0,2915084952
O 1 0,04 0,1857542476
o 2 0,08 0,2915084952
R 1 0,04 0,1857542476
s 2 0,08 0,2915084952
v 1 0,04 0,1857542476
25 1 3,86346519
Пункт 2. Розрахувати ентропію повідомлення.
while True:
array = {}
for s in string:
try:
array[s] += 1
except:
array[s] = 1
size = len(string)
sum = 0
for n in array.values():
sum += n/size*log2(n/size)
print('Eнтропія = ',-sum)
print(size)
Результати програми:
ALPHABET_SIZE = 1 << 8
FILES = ['1', '10', '15']
LANGUAGES = ['r', 'u', 'e']
return {
char: count / len(text)
for char, count in char_count.items()
}
def stats_mode_handler():
stats = {}
for size, lang in itertools.product(FILES, LANGUAGES):
with open(f'{lang}{size}.txt', 'rb') as f:
text = f.read()
stats[size] = {
**stats.get(size, {}),
**{ lang: get_entropy(text) }
}
print(pd.DataFrame(stats).to_string())
def file_mode_handler():
filename = input('Enter file name:\n')
def input_mode_handler():
text = input('Enter your text:\n')
print_text_stats(text)
if mode == 'i':
input_mode_handler()
elif mode == 'f':
file_mode_handler()
elif mode == 's':
stats_mode_handler()
Висновок:
Засвоїла основні відомості з методів вимірювання обсягу
інформації. Отримала навички оцінювання збитковості інформації та
засобів її подолання.