Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перестановка символов 
:(
    Опции темы
Ksen
Дата 29.5.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 24.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Здрасти Всем!!
Товарищи помогите решить задачу девочке-дурочке!!!
Есть N-ое кол-во символов, например  ABCD, нужно переставить их местами, например CADB....

Не представляю как это можно сделать smile ...Если у кого есть какие-нибудь примеры реализации подобных задач, или какой-нибудь простенький алгоритм........ скиньте....плиз! 
За любое пояснение и разъяснение буду благодарна!!!!
 
PM MAIL ICQ   Вверх
skyboy
Дата 29.5.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Ksen, просто случайным образом перемешать? или как?  
PM MAIL   Вверх
Ksen
Дата 29.5.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 24.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Да....можно случайным образом.
Но только так, чтобы я в дальнейшем смогла эти перемешанные символы вернуть в исходную позицию, т.е. туда где они и стояли...)))

Добавлено @ 15:19 
Кстати, я тут наткнулась на криптосистемы....одна из них,  шифры перестановок мне понравилась....вроде просто, но со вкусом.....что если с помощью ее перемешать символы?!

Тогда у меня возникает немного другая проблема....как из строки символов сделать столбец? С помощью какой функции это можно осуществить? 

 
PM MAIL ICQ   Вверх
skyboy
Дата 29.5.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



простенький алгоритм? ок, тогда, если у тебя строка хранится в, скажем, перемнной Str:
Код

var i:byte;
     c:char;
    str:string;
.....
.....
......
for i:=1 to length(Str) div 2 do 
 begin
  c:=Str[i];
  Str[i]:=Str[i + length(Str) div 2];
  Str[i + length(Str) div 2]:=c;
 end;

Пойдёт? "АБВГ"=>"ВГАБ", "12345"=>"34125". Т.е. меняются "половинками", кроме последнего символа в случае нечетной длины строки(если строка имеет длину, не делящуюся нацело на 2, то последний символ остаётся на своём месте).
Для "восстановления" используешь тот же алгоритм, но на вход подаёшь уже изменённую строку:
"ВГАБ"=>"АБВГ", "34125"=>"12345".
Впрочем, не наши это методы - излишне просто smile Можно заюзать такой алгоритм:
Код

var i,j,k:integer;
      code:integer;
      Str:string;
      C:char;
      MaxCycles;
.....
code:=1254;
MaxCycles:=255;
.....
RandSeed:=code;
for i:=1 to MaxCycles do
 begin
  j:=trunc(length(Str)*random) + 1;
  k:=trunc(length(Str)*random) + 1;
  c:=Str[j];
  Str[j]:=Str[k;
  Str[k]:=c;
 end;

Только Randomize низзя ни в коем случае использовать. Таким макаром ты при использовании одной и той же величины Code, получаешь одинаковые последовательности чисел и для восстановления строки необходимо применить тот же алгоритм для изменённой строки...
P.S. К сожалению, "в жизни" проверить не смогу. Сообщи, если что не работает.

Добавлено @ 15:34 
Ksen, что значит -- "из строки симолов в столбец"? Это как? smile  
@15.36(+02.00)
Так тебе это для шифрования? Тогда и в самом деле - какой-нить серьёзный криптографический алгоритм надо...  

Это сообщение отредактировал(а) skyboy - 29.5.2006, 15:37
PM MAIL   Вверх
Ksen
Дата 29.5.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 24.5.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



я наверное, выразилась не совсем понятно.....посмотри "Шифры перестановки", по этой ссылочке и ты все поймешь....
http://www.nntu.sci-nnov.ru/RUS/fakyl/VECH..._dan/lab1_2.htm
может быть, конечно, мне КАЖЕТСЯ, что это просто.....но хотябы мысль как это осуществить.....

Добавлено @ 16:04 
Я незнаю, если это можно назвать шифрованием....то да...
я хочу как-нибудь запутать символы.....в дальнейшем пользователь должен будет вводить их как пароль... 
PM MAIL ICQ   Вверх
Rennigth
Дата 29.5.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Ksen, 
http://forum.vingrad.ru/index.php?showtopi...amp;#038;hl=xor
http://forum.vingrad.ru/index.php?act=modu...amp;section=774

Добавлено @ 16:28 
вообщем не стесняемся -> пользуемся поиском  smile  


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Mechanic
Дата 29.5.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

Репутация: 6
Всего: 7



Цитата(skyboy @  29.5.2006,  15:34 Найти цитируемый пост)
Ksen, что значит -- "из строки симолов в столбец"? Это как?   

 smile 
Просто к бумажке с числами нужно применить Rotate CW PI/2 Rad.
Или к монитору..  
А вообще, интересно, в ПЦ-совместимом компе младшие адреса памяти лежат выше старших, или левее?  smile  
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
skyboy
Дата 29.5.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



Ksen, посмотрел smile Так там туча алгоритмов. Ты какой-то конкретный имеешь в виду, или находишься "в поиске"? 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.