Алфавит - перечень символов, встречающихся в текстах. Каждый символ в алфавите встречается только один раз. Алфавит содержит не только прописные и строчные буквы, но символы знаков препинания, пробел, символы перевода каретки, символы новой строки и т.п. Каждый символ в алфавите имеет адрес, который изменяется от 1 - первый слева символ в алфавите, до N - последний слева символ в алфавите.
Рассмотрим пример.
Пусть имеем два слова: Путин, Медведев. В этих словах имеются следующие символы: П, у, т, и, н, М, е, д, в. Этот набор символов называется собственным алфавитом слов Путин и Медведев.
Задача: Найти алгоритм отображения слова Путин через слово Медведев и алгоритм восстановления слова Путин из слова Медведев.
Решение: Возьмем алфавит, состоящий из всех символов русского и английского языка, знаков препинания, пробела. Всего 190 символов, т.е. N = 190. Порядок символов в алфавите - случайный.
Запишем собственный алфавит в следующем виде:
17, 100, 34, 35, 144, 190, 88, 66, 1
П, у, т, и, н, М, е, д, в
В первой строке указаны адреса символов собственного алфавита в общем алфавите. Во второй строке указан собственный алфавит.
Для преобразования буквы "П" в букву "М" сравним адреса букв "П" и "М". Это числа 17 и 190. Для отображения буквы "П" через букву "М" необходимо к числу 17 прибавить число 190-17=173 и по адресу 190 считать букву "М". Число 173 запишем в вектор на первое место, так как это число отображает первые буквы.
Для отображения буквы "у" через букву "е" сравним адреса букв "у" и "е". Это числа 100 и 88. Для отображения буквы "у" через букву "е" необходимо к числу 100 прибавить неизвестное число x, такое чтобы получилось число 88. Решаем уравнение 100 + x = 88, отсюда x = -12. Наша задача получить все положительные числа для отображения. Поскольку, у нас получилось -12 < 1, то прибавим к нему количество чисел в алфавите -12 + 190 = 178. Таким образом, второе число отображающее букву "у" в букву "е" будет равно 178. Это число мы запишем на второе место в вектор 173, 178. Адрес буквы "е" вычисляется следующим образом: 100 + 178 - 190 = 88.
Для отображения буквы "т" через букву "д" сравним адреса букв "т" и "д". Это числа 34 и 66. Для отображения буквы "т" через букву "д" необходимо к числу 34 прибавить неизвестное число x, такое чтобы получилось число 66. Решаем уравнение 34 + x = 66, отсюда x = 32. Таким образом, третье число отображающее букву "т" в букву "д" будет равно 32. Это число мы запишем на третье место в вектор 173, 178, 32. Адрес буквы "д" вычисляется следующим образом: 34+32= 66.
Для отображения буквы "и" через букву "в" сравним адреса букв "и" и "в". Это числа 35 и 1. Для отображения буквы "и" через букву "в" необходимо к числу 35 прибавить неизвестное число x, такое чтобы получилось число 1. Решаем уравнение 35 + x = 1, отсюда x = -34. Наша задача получить все положительные числа для отображения. Поскольку, у нас получилось -34 < 1, то прибавим к нему количество чисел в алфавите -34 + 190 = 156. Таким образом, четвертое число отображающее букву "и" в букву "в" будет равно 156. Это число мы запишем на четвертое место в вектор 173, 178, 32, 156. Адрес буквы "в" вычисляется следующим образом: 35 + 156 - 190 = 1.
Для отображения буквы "н" через букву "е" сравним адреса букв "н" и "е". Это числа 144 и 88. Для отображения буквы "н" через букву "е" необходимо к числу 144 прибавить неизвестное число x, такое чтобы получилось число 88. Решаем уравнение 144 + x = 88, отсюда x = -56. Наша задача получить все положительные числа для отображения. Поскольку, у нас получилось -56 < 1, то прибавим к нему количество чисел в алфавите -56 + 190 = 134. Таким образом, пятое число отображающее букву "н" в букву "е" будет равно 134. Это число мы запишем на пятое место в вектор 173, 178, 32, 156, 134. Адрес буквы "е" вычисляется следующим образом: 144 + 134 - 190 = 88.
Предположим, что нам известно слово Медведев, алфавит и вектор чисел 173, 178, 32, 156, 134. Посмотрим, что получится при восстановлении.
Находим адрес буквы "М" (первой буквы в слове Медведев) в алфавите. Это число 190. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 190 первое число вектора 190 - 173 = 17. Поскольку число положительное, то по адресу 17 в алфавите находим букву "П". Первая буква восстановлена.
Находим адрес буквы "е" (второй буквы в слове Медведев) в алфавите. Это число 88. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 88 второе число вектора 88 - 178 = -90. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -90 + 190 = 100. По адресу 100 в алфавите находим букву "у". Вторая буква восстановлена. Всего восстановлено "Пу".
Находим адрес буквы "д" (третьей буквы в слове Медведев) в алфавите. Это число 66. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 66 третье число вектора 66 - 32 = 34. По адресу 34 в алфавите находим букву "т". Третья буква восстановлена. Всего восстановлено "Пут".
Находим адрес буквы "в" (четвертой буквы в слове Медведев) в алфавите. Это число 1. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 1 четвертое число вектора 1 - 156 = -155. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -155 + 190 = 35. По адресу 35 в алфавите находим букву "и". Четвертая буква восстановлена. Всего восстановлено "Пути".
Находим адрес буквы "е" (пятой буквы в слове Медведев) в алфавите. Это число 88. Поскольку при отображении мы прибавляли неизвестное число, то при восстановлении необходимо вычитать числа вектора. Вычтем из числа 88 пятое число вектора 88 - 134 = -46. Поскольку число меньше 1, то необходимо прибавить число N=190. Получим -46 + 190 = 144. По адресу 144 в алфавите находим букву "н". Пятая буква восстановлена. Всего восстановлено "Путин".
Числа в векторе использованы все, следовательно восстановление завершено. Количество чисел в векторе равно длине восстанавливаемой информации.
Если бы первое слово было больше второго, то при достижении конца слова при отображении, необходимо перейти к первому символу. Таким образом, осуществляется отображение через один единственный символ.
САМОЕ ВАЖНОЕ: адреса в алфавите должны начинаться с 1.
Поскольку на элементы алфавита никаких ограничений не накладывается, то в качестве элементов алфавита могут выступать байты, произвольные тексты, слова и т.п.
Можно использовать не один алфавит, а два и более.
Необходимым и достаточным условием для отображения произвольного текста через другой произвольный текст: Алфавит должен содержать собственный алфавит. Поскольку числа вектора зависят только от порядка следования символов в алфавите и не зависят от самих символов, то существует целый класс, равный факториалу от N, отображения одной и той же информации через другую одну и ту же информацию.
Этот алгоритм опубликован в 2009 г.
С уважением, автор.
Info - Алгоритм отображения информации
Ответить
Сообщений: 1
• Страница 1 из 1
Вернуться в «Защита компьютерных систем»
Перейти
- Forum-OSzone.ru
- ↳ Информация
- Клиентские ОС Microsoft
- ↳ Microsoft Windows 95/98/Me (архив)
- ↳ Microsoft Windows 2000/XP
- ↳ Microsoft Windows Vista
- ↳ Microsoft Windows 7
- ↳ Microsoft Windows 8 и 8.1
- ↳ Microsoft Windows 10
- ↳ Microsoft Windows 11
- Linux и FreeBSD
- ↳ Общий по Linux
- ↳ Общий по FreeBSD
- ↳ Программное обеспечение Linux и FreeBSD
- ↳ Железо в Linux
- ↳ Новости и флейм из мира *nix
- ↳ Железо во FreeBSD
- ↳ Программирование в *nix
- Общий
- ↳ Флейм
- ↳ О сайте и форуме
- ↳ Юмор
- Компьютеры + Интернет
- ↳ Вебмастеру
- ↳ Хочу все знать
- ↳ Игры
- ↳ Мобильные ОС, смартфоны и планшеты
- ↳ Сетевые технологии
- Зона тестирования
- ↳ Тест-форум
- Железо
- ↳ Поиск драйверов, прошивок и руководств
- ↳ Непонятные проблемы с Железом
- ↳ Процесcоры
- ↳ Материнские платы и память
- ↳ Видеокарты
- ↳ Разгон, охлаждение и моддинг
- ↳ Накопители (SSD, HDD, USB Flash)
- ↳ Оптические приводы
- ↳ Сетевое оборудование
- ↳ Прочее железо
- ↳ Выбор отдельных компонентов компьютера и конфигурации в целом
- ↳ Ноутбуки
- ↳ Металлолом
- Автоматическая установка Windows
- ↳ Автоматическая установка Windows 2000/XP/2003
- ↳ Автоматическая установка приложений
- ↳ Наборы обновлений для Windows XP/2003/Windows 7
- ↳ Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista
- ↳ Проект WinStyle
- Информационная безопасность
- ↳ Защита компьютерных систем
- ↳ Лечение систем от вредоносных программ
- Архив
- ↳ Новости железа
- ↳ Новости информационных технологий
- ↳ Новости и события Microsoft
- ↳ Новости программного обеспечения
- Цифровые технологии
- ↳ Видео и аудио: обработка и кодирование
- ↳ Цифровое изображение
- Серверные продукты Microsoft
- ↳ Microsoft Windows NT/2000/2003
- ↳ Microsoft Exchange Server
- ↳ Windows Server 2008/2008 R2
- ↳ ISA Server / Microsoft Forefront TMG
- ↳ WSUS
- ↳ Другие серверные продукты
- ↳ Windows Server 2012/2012 R2
- ↳ Windows Server 2016/2019/2022
- Программирование, базы данных и автоматизация действий
- ↳ Программирование и базы данных
- ↳ Скриптовые языки администрирования Windows
- ↳ AutoIt
- Сфера Microsoft
- ↳ Программное обеспечение Windows
- ↳ Лицензирование продуктов Microsoft
- ↳ Устранение критических ошибок Windows
- ↳ Microsoft Office (Word, Excel, Outlook и т.д.)
- Изменение внешнего вида Windows
- ↳ Оформление Windows 11/ 10 / 8 / 7 / Vista
- ↳ Оформление Windows XP