КВАДРАТ ПОЛИБИЯ PYTHON
Квадрат Полибия - это шифр замены, который был придуман греческим философом и математиком Полибием во II веке до н.э. Он использует специальную таблицу, называемую квадратом Полибия, для шифрования букв. Этот метод шифрования можно реализовать на языке Python.
Для начала, необходимо создать квадрат Полибия. Это можно сделать с помощью двумерного списка:
square = [['A', 'B', 'C', 'D', 'E'], ['F', 'G', 'H', 'I', 'K'], ['L', 'M', 'N', 'O', 'P'], ['Q', 'R', 'S', 'T', 'U'], ['V', 'W', 'X', 'Y', 'Z']]
Здесь используется английский алфавит, за исключением буквы J, которая была опущена из-за своей схожести с буквой I.
Теперь, чтобы зашифровать слово, нужно пройти по каждой букве и заменить ее координатами в квадрате Полибия:
def encrypt(plaintext): ciphertext = '' for char in plaintext.upper(): if char == 'J': char = 'I' for i in range(len(square)): for j in range(len(square[i])): if char == square[i][j]: ciphertext += str(i+1) + str(j+1) + ' ' return ciphertext.strip()
Эта функция принимает строку и возвращает зашифрованный текст в виде строки числовых координат. Знак пробела после каждой пары координат используется для разделения отдельных символов.
Расшифровка выполняется путем замены каждой пары координат обратно на соответствующую букву:
def decrypt(ciphertext): plaintext = '' coords = ciphertext.split() for i in range(len(coords)): row = int(coords[i][0]) - 1 col = int(coords[i][1]) - 1 plaintext += square[row][col] return plaintext.lower()
Вот как можно использовать эти функции:
text = 'Hello, World!'encrypted = encrypt(text)print(encrypted)decrypted = decrypt(encrypted)print(decrypted)
В результате выполнения этого кода должно быть выведено:
324233111542 43244151123225 2233515143
helloworld
Создай свои квадрат Полибия и решётку Кардано
كورس البرمجة الكائنية - الأبسط على الإطلاق (مع التطبيق + المصادر) البرمجة الشيئية
لا تتعلم بايثون هي اسوأ اختيار - أبدأ بأي لغة برمجة؟
Learn Python in Arabic #034 - Boolean Operators
Магический квадрат - фокус для вечеринок [Numberphile]
4.5 Магический квадрат🌶️. \
Python tutorial -- Boolean
Новые материалы:
- Opencv python сохранение изображения
- Numpy нормальное распределение
- Кликер на pygame
- Python искусственный интеллект
- Python реактивное программирование
- Кавычки и апострофы в python
- Python vk api авторизация
- Получить сертификат python
- Кодировка при парсинге python
- Python документация pandas
- Python переменные глобальные
- Numpy среднее значение
- Python docker установить
- Python библиотека binance
- Гистограмма python matplotlib