Показать сообщение отдельно
Старый 18.11.2015, 14:35   #7
nikolAndr
Newbie
 
Регистрация: 12.11.2015
Сообщений: 5
По умолчанию

Практическое использование обсуждаемого свойства натуральных чисел.
Рассмотрим преобразование одного текста в другой текст. Для демонстрационных целей ограничимся преобразованием слова "Ад" в слово "Агат".
ПЕРВЫЙ ШАГ - вычисление собственного алфавита слова "Ад". Собственный алфавит - это различне символы, которые встречаются в слове "Ад". Таких символов 2 - буква "А" и буква "д".
ВТОРОЙ ШАГ - вычисление собственного алфавита слова "Агат". Таких символов 4 - буква "А", буква "г", буква "а", буква "т".
ТТНТИЙ ШАГ - вычисление собственного алфавита обоих слов. Таких символов 5 - буква "А", буква "д", буква "г", буква "а", буква "т".
ЧЕТВЕРТЫЙ ШАГ - запишем собственный алфавит обох слов в одну строчку и перенумеруем символы алфавита. Номера букв - это адреса этих букв в алфавите.
А-1 д-2 г-3 а-4 т-5
Длина алфавита N = 5
ПЯТЫЙ ШАГ - вычисление вектора приращения, позволяющего преобразовать слово "Ад" в слово "Агат". Вектор приращения обозначим через V().
1) Берем первую букву слова "Ад" - это буква "А". Находим адрес этой буквы в общем алфавите. Это число 1. Берем первую букву слова "Агат" - это буква "А". Находим адрес этой буквы в общем алфавите. Это число 1. Находим разность адресов 1 - 1 = 0. Это меньше 1, поэтому прибавляем к разности N = 5. Получим 0 + 5 = 5. Записываем это число на первое место в вектор приращения V(1) = 5.
2) Берем вторую букву слова "Ад" - это буква "д". Находим адрес этой буквы в общем алфавите. Это число 2. Берем вторую букву слова "Агат" - это буква "г". Находим адрес этой буквы в общем алфавите. Это число 3. Находим разность адресов 3 - 2 = 1. Это число больше 0 и меньше 6, поэтому записываем это число на второе место в вектор приращения V(2) = 1.
3) Поскольку первое закончилось, то начинаем использовать это слово сначала. Берем первую букву слова "Ад" - это буква "А". Находим адрес этой буквы в общем алфавите. Это число 1. Берем третью букву слова "Агат" - это буква "а". Находим адрес этой буквы в общем алфавите. Это число 4. Находим разность адресов 4 - 1 = 3. Это число больше 0 и меньше 6, поэтому записываем это число на третье место в вектор приращения V(3) = 3.
4) Берем вторую букву слова "Ад" - это буква "д". Находим адрес этой буквы в общем алфавите. Это число 2. Берем четвертую букву слова "Агат" - это буква "т". Находим адрес этой буквы в общем алфавите. Это число 5. Находим разность адресов 5 - 2 = 3. Это число больше 0 и меньше 6, поэтому записываем это число на четвертое место в вектор приращения V(4) = 3.
Вектор приращений содержит 4 числа V()={5,1,3,3}
ШЕСТОЙ ШАГ - преобразование слова "Ад" в слово "Агат".
1) Берем первую букву из слова "Ад" - это буква "А". Находим адрес этой буквы в общем алфавите. Это число 1. Прибавляем к этому адресу первое число из вектора приращения - это число 5. 1 + 5 = 6. Поскольку 6 > N = 5, то вычитаем число N. 6 - 5 = 1. Это адрес первой буквы второго слова в общем алфавите. По этому адресу находится буква "А" - это первая буква второго слова.
2) Берем вторую букву из слова "Ад" - это буква "д". Находим адрес этой буквы в общем алфавите. Это число 2. Прибавляем к этому адресу второе число из вектора приращения - это число 1. 2 + 1 = 3. Поскольку 3 больше 0 и меньше 6, то ничего больше не делаем. Это адрес второй буквы второго слова в общем алфавите. По этому адресу находится буква "г" - это вторая буква второго слова.
2) Поскольку первое закончилось, то начинаем использовать это слово сначала. Берем первую букву из слова "Ад" - это буква "А". Находим адрес этой буквы в общем алфавите. Это число 1. Прибавляем к этому адресу третье число из вектора приращения - это число 3. 1 + 3 = 4. Поскольку 4 больше 0 и меньше 6, то ничего больше не делаем. Это адрес третьей буквы второго слова в общем алфавите. По этому адресу находится буква "а" - это третья буква второго слова.
3) Берем вторую букву из слова "Ад" - это буква "д". Находим адрес этой буквы в общем алфавите. Это число 2. Прибавляем к этому адресу четвертое число из вектора приращения - это число 3. 2 + 3 = 5. Поскольку 5 больше 0 и меньше 6, то ничего больше не делаем. Это адрес четвертой буквы второго слова в общем алфавите. По этому адресу находится буква "т" - это четвертая буква второго слова.
Мы вычислили второе слово "Агат" из первого слова "Ад". Это действие мы называем преобразованием слова "Ад" в слово "Агат".
Как видите для преобразования необходимо использовать описанное ранее свойство натуральных чисел. Обратите внимание: адреса в алфавите должны начинаться с 1. Если адрес в алфавите начинается с 0, то алгоритм не работает. Это связано с тем, что прибавление 0 не изменяет адрес. Таким образом, описанное свойство натуральных чисел - это арифметика адресов в алфавитах при преобразовании текстов.
Преобразование текстов не является шифрованием, так как целью шифрования является сокрытие смысла текста. А у нас целью преобразования является получение нового текста с новым смыслом и новым размером. Кроме того, если бы этот алгоритм был алгоритмом шифрования, то государство давно бы принудительно выкупила бы его в свою собственность. У государства имеются более мощные и надежные средства защиты, чем наш алгоритм преобразования текстов. Наш алгоритм предназначен для защиты частной информации.
Преобразование текста можно производить самого в себя, в том числе можно получить весь текст из любой буквы текста. Это является изоморфизмом процесса выращивания организма из одной клетки. Конечно, в живой природе все намного сложнее, но общая схема, скорее всего, неизменна.
Прошу коллег высказаться, а также задать интересующие Вас вопросы.
nikolAndr вне форума   Ответить с цитированием
Реклама