перекодировщик чисел и букв
# Полный русский алфавит (33 буквы)
alphabet = [
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й',
'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф',
'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'
]
def get_letter(num):
# Если 0, возвращаем 'о'
if num == 0:
return 'о'
# Рекурсивно делим на 2 и округляем, пока <= 33
while num > 33:
num = round(num / 2)
# Если после деления всё равно >33, берём по модулю
if num > 33:
num = num % 33
# Если num == 0 после модуля, ставим 'о'
if num == 0:
return 'о'
# Возвращаем букву (индекс 0-based)
return alphabet[num - 1]
# Чтение из файла number.txt
try:
with open('number.txt', 'r') as file:
data = file.readlines() # Читаем все строки
except FileNotFoundError:
print("Файл number.txt не найден. Убедитесь, что он в той же директории.")
exit()
# Обработка и вывод
result = []
for line in data:
line = line.strip() # Убираем лишние пробелы и переносы
if line: # Если строка не пустая
numbers = list(map(int, line.split())) # Парсим числа
for num in numbers:
result.append(get_letter(num))
result.append('\n') # Новая строка после каждой исходной
# Выводим результат
output = ''.join(result).strip()
print("Результат перекодировки:")
print(output)
matrix mod ai {11*14}
20 56 21 09 20 25 00 00 00 00 16
13 81 48 63 71 38 88 12 02 01 00
80 60 77 50 91 20 00 24 03 10 02
20 10 20 10 20 10 20 10 20 10 00
19 51 54 20 25 40 11 32 55 01 04
48 25 05 94 27 86 50 19 93 10 00
10 20 10 15 20 10 15 20 10 15 06
52 00 23 00 21 20 25 00 11 01 00
44 02 22 62 93 80 85 14 00 10 08
10 11 12 13 14 15 16 17 18 19 00
17 10 06 12 60 00 10 10 20 01 10
00 01 00 01 00 01 00 01 00 11 00
20 22 24 26 28 30 32 34 36 38 00
27 19 87 00 14 40 29 30 31 32 33
Результат перекодировки:
тъузтчооооо
лтцюрсфкбао
тьсчхтоцвиб
тититититио
сшщтчтйюъаг
цчдцщфчсхио
итинтинтине
шохоутчойао
фбфэхтумоиж
ийклмнопрсо
пиекьоиитаи
оаоаоаоаойо
тфцшъьюпрсо
щсфомтыьэюя
# Словарь для кодирования букв
encoding_dict = {
'а': '01', 'б': '02', 'в': '03', 'г': '04', 'д': '05',
'е': '06', 'ж': '07', 'з': '08', 'и': '09', 'к': '10',
'й': '11', 'л': '12', 'м': '13', 'н': '14', 'о': '15',
'п': '16', 'р': '17', 'с': '18', 'т': '19', 'у': '20',
'ф': '21', 'х': '22', 'ц': '23', 'ч': '24', 'ш': '25',
'щ': '26', 'ъ': '27', 'ы': '28', 'ь': '29', 'э': '30',
'ю': '31', 'я': '32'
}
# Функция для кодирования текста
def encode_text(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()
encoded_numbers = []
for char in text:
if char.isdigit(): # Если символ - цифра, добавляем его как есть
encoded_numbers.append(char)
elif char in encoding_dict: # Если символ - буква, кодируем его
encoded_numbers.append(encoding_dict[char])
return encoded_numbers
# Функция для вывода матрицы
def print_matrix(encoded_numbers, row_length=12):
for i in range(0, len(encoded_numbers), row_length):
row = encoded_numbers[i:i + row_length]
print(' '.join(row).ljust(row_length * 3)) # Выравнивание по ширине
# Основная программа
if __name__ == "__main__":
file_path = 'текст.txt' # Путь к файлу
encoded_numbers = encode_text(file_path)
print_matrix(encoded_numbers)
10 01 16 10 01 16 10 15 16 10 15 16
10 09 16 10 09 16 10 15 14 10 15 14
19 09 10 19 09 10 19 15 10 19 15 10
12 15 19 12 15 19 10 15 05 10 15 05
17 15 19 17 15 19 14 15 19 14 15 19
18 15 17 18 15 19 18 15 12 18 15 12
14 15 12 14 15 12 12 09 10 12 09 10
02 09 04 02 09 04 16 09 14 16 09 14
18 15 14 18 15 14 19 15 14 19 15 14
05 15 17 05 15 17 03 15 19 03 15 19
02 15 04 02 15 04 12 15 04 12 15 04
05 15 14 05 15 14 05 09 14 05 09 14
18 19 15 18 19 15 13 15 14 13 15 14
04 15 14 04 15 14 14 15 18 14 15 18
17 01 08 17 01 08 05 03 01 05 03 01
15 05 09 14 15 05 09 14 10 15 05 10
15 05 03 06 17 03 06 17 18 06 19 18
06 19 05 09 14 05 09 14 14 15 03 14
15 03 00 00 00 00
Свидетельство о публикации №125092100624