Всем привет, снова врайтап, который прочтёт два с половиной человека. Сегодня я страдая последствиями сломанного режима решился написать компил тайм шифрование строк на основе DFA. Не забывайте, что это всё Proof Of Concept, и для использования в реальном проекте нужно улучшать…
Представьте, что вы робот, который заменил людей в кодинге, и вы работаете в гугле. У вас есть несколько состояний:
Каждое событие (входной символ) переводит вас в новое состояние. Например, "Мозг кипит" переводит из "Анализ" в "Кофе". Вот это, друзья, и есть конечный автомат!
Математически это выглядит как A = (Q, Σ, δ, q0, F), где:
Теперь додумывая, что каждое состояние не просто название, а какое-то число. И при переходе из одного состояния в другое, мы не просто переходим, а еще и выдаем какой-то символ, вот и вся логика
На языке псевдо-кода:
state = initial_state
for char in input_text:
output = output_table[state][char]
state = transition_table[state][char]
encrypted_text += output
Представьте, что вместо одного робота у нас есть несколько более простых, соединенных последовательно. В целом упрощая это и есть концепция многослойного автомата