Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2008, 13:49
CyberNik CyberNik вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 2
Репутация: 10
По умолчанию ШифроВка..

Всем привет!
может кто поможет решит задачу...
Двузначные номера. Каждую букву исходного сообщения заменили её порядковым двузначным номером в русском алфавите согласно таблице:
а б в г д е ё ж з и й
01 02 03 04 05 06 07 08 09 10 11
К л м н о п р с т у ф
12 13 14 15 16 17 18 19 20 21 22
Х ч ц ш щ ъ ы ь э ю я
23 24 25 26 27 28 29 30 31 32 33
Полученную цифровую последовательность разбили (справа налево) на трехзн. Цифровые группы без пересечений и пропусков. Затем каждое из полученных трехзначных чисел умножили на 77. В результате получилось последовательность цифр: 317564404970017677550547850355.
Ответить с цитированием
  #2  
Старый 05.05.2008, 15:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А что сделать-то надо?
Обратить алгоритм что-ли?
Ответить с цитированием
  #3  
Старый 05.05.2008, 15:47
CyberNik CyberNik вне форума
Прохожий
 
Регистрация: 05.05.2008
Сообщения: 2
Репутация: 10
По умолчанию !!

1) Разбиваем исходную последовательность на трехзначные числа
2) Для каждого из них перебором находим такие две первых цифры (от 00 до 99) чтоб полученное число делилось без остатка на 77
3) Делим полученные числа на 77
4) Приводим частные к трехзначной длинне и соединяем в одну последовательность
5) Разбиваем полученную последовательность по две цифры
6) Подставляем согласно алфавиту каждому номеру буквы
мне кажется так, только как написать это в программе...
Ответить с цитированием
  #4  
Старый 05.05.2008, 16:41
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

неправильно.
в пункте 1 сразу ошибка.
в задаче сказанно, что полученная последовательность бъется на трехзначные числа и каждое из них умножается на 77. В результате число максимальной длинны будет 999*77 = 76923, т.е пятизначние.
Тут надо идти с конца и искать последовательности, которые будут нацело делиться на 77. Наверное так.
Ответить с цитированием
  #5  
Старый 06.05.2008, 14:42
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Цитата:
1) Разбиваем исходную последовательность на трехзначные числа
2) Для каждого из них перебором находим такие две первых цифры (от 00 до 99) чтоб полученное число делилось без остатка на 77
Так не получится-минимальное произведение-770, максимальное-933*77=71841. Если надо дешифровать, то придется рассмотреть все варианты последовательностей произведений чисел на 77 (а это как минимум 2048 комбинаций трехзначных, четырехзначных и пятизначных чисел) и отсеять те комбинации, в которых есть числа, не делящиеся на 77, а затем перегруппировать оставшиеся комбинации по 2 цифры, удалить те комбинации, где есть числа>33...это жутко долго. Плюс первые 9 букв начинаются с нуля, и его надо добавлять вперед.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:08.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter