Uploaded by ten miles

Лаб 5 ТІ

advertisement
import randomimport
stringdef
gen_dict(inp): d = {}
i = 0
while i < (len(inp)): if
inp[i] != ' ':
if inp[i] not in d.keys(): d[inp[i]] = f'(0 ,"{inp[i]}")'
i += 1 else:if i != len(inp) - 1: d[inp[i:i + 2]] =
f'({list(d.keys()).index(inp[i]) + 1} ,"{inp[i + 1]}")'
i += 2 else:d[inp[i] + '(eof)'] = f'({list(d.keys()).index(inp[i]) + 1}
,"(eof)")'
i += 1 else:i += 1
return dprint('*' * 50)
print('task 1')
print('*' * 50)
s = ''
with open("input.txt", "r+") as file: for
line in file: s += lineprint(s)
d = gen_dict(s)
for k, v in d.items(): print(f'{k} {v}')
print('*' * 50)
print('task 2')
print('*' * 50)
s = ''
with open("input1.txt", "r+") as file: for
line in file: s += lineprint(s)
d = gen_dict(s)
for k, v in d.items(): print(f'{k} {v}')
print('*' * 50)
print('task 3')
print('*' * 50)
s = ''
for _ in range(20): s += ''.join(random.choice(string.ascii_letters +
string.digits) for _ in range(6))
print(s)
d = gen_dict(s)
for k, v in d.items(): print(f'{k} {v}')
1. Реалізувати програмно алгоритм кодування послідовностей символів на основі методу LZ78. 2.
Здійснити кодування: а) власного прізвища записаного два рази без пропуску. б) довільного
фрагмента тексту довжиною від 20 до 30 слів. в) випадково згенерованого набору символів у вигляді
20- 30 слів. Зміст звіту. 1. Текст програми. 2. Вхідна послідовність. 3. Кодовий словник (у вигляді
таблиц
Download