КВАДРАТ ПОЛИБИЯ 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

BLGPG-5222A8BC6754-24-09-20-01

Новые материалы: