Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Yuri Kolesnikov                      2:5033/35.77   14 Sep 2001  08:14:40
 To : Vladimir Kotov
 Subject : Re: simple task
 -------------------------------------------------------------------------------- 
 
 
 13 Сен 01 22:34, Vladimir Kotov -> All:
 
  VK> Hикто не знает как осуществить перебор всех аскишных строчек с
  VK> определенной побайтовой суммой? Строчки мб разной длины.
 
 Первое, что приходит в голову - рекурсия.
 Если заданная сумма Sum, то выбираем в цикле все варианты первого символа (пусть
 его код С1) и присоединяем к нему все возможные варианты строк с суммой
 (Sum-C1).
 Hа Пасквиле это будет выглядеть так:
 {$M 64000,0,0}
 Procedure Ascii_str(Sum:integer; S:string);
 var C1:byte;
     Limit:integer;
 begin
 if Sum=0 then
  {В S находится очередной вариант строки}
  {можно обрабатывать}
  Writeln(S);
  exit;
 end;
 if Sum > 255 then Limit:=255 else Limit:=Sum;
 for C1:=1 to Limit do
  begin
   Ascii_Str(Sum-C1,S+chr(c1));
  end;
 end;
 
 var Summa:integer;
 Begin
  ReadLn(Summa);
  Ascii_Str(Summa,'');
 End.
 Вариант рабочий, но по скорости возможно не самый оптимальный.
 Из-за передачи string очень быстро съедается стек, поэтому реально надо эти
 строки передавать указателями.
 
 Если нужны только строки из символов конкретной части таблицы, то надо просто
 изменить пределы перебора в цикле. Только тогда не всегда можно будет получить
 требуемую сумму... ;)
 
 Можно попробовать сгенерировать строки вида с1с2с3...сN удовлетворяющие условию
          с1>c2>c3>...cN. А остальные получить перестановками символов. 
                                                                Yuri
 --- GoldED+/W32 1.1.4.3
  * Origin: -= Опс-с =- (2:5033/35.77)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 simple task   Vladimir Kotov   13 Sep 2001 22:34:30 
 Re: simple task   Yuri Kolesnikov   14 Sep 2001 08:14:40 
Архивное /ru.algorithms/33993ba19139.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional