Вверх ↑
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
#1: 2011-11-07 23:43:42 ЛС | профиль | цитата
Доброго времени суток. Как создать все возможные строки с заданым набором символом Например: Имеем набор ABC, с кол-вом символов 3 то после обработки получим:
Может что-небуть неправильно написал...
[block]AAA
ABA
ACA
AAB
AAC
ABC
ABB
ACB
ACC
BBA
BCA
BAB
BAC
BBC
BBB
BCB
BCC
CBA
CCA
CAB
CAC
CBC
CBB
CCB
CCC[/BLOCK]
карма: 5

0
Ответов: 16884
Рейтинг: 1239
#2: 2011-11-07 23:49:37 ЛС | профиль | цитата
sаmakacd писал(а):
Как создать все возможные строки с заданым набором символом
Если задать весь алфавит, то жизни нехватит.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1821
Рейтинг: 168
#3: 2011-11-07 23:52:16 ЛС | профиль | цитата
[flood]Tad, гы [/flood]
карма: 5

0
Ответов: 3889
Рейтинг: 362
#4: 2011-11-08 08:32:54 ЛС | профиль | цитата
sаmakacd писал(а):
Как создать все возможные строки с заданым набором символом

Вложенными цикламирекурсией. Только при рекурсии следует помнить, что стек не резиновый и заполняется геометрически.
------------ Дoбавленo в 08.32:
Tad писал(а):
Если задать весь алфавит, то жизни нехватит.

По-этому в серьёзных системах подбора паролей используются мощности графических ускорителей иили целые кластеры машин
карма: 1

0
Ответов: 1536
Рейтинг: 176
#5: 2011-11-08 08:58:32 ЛС | профиль | цитата
sаmakacd, Очень просто! Применить двоичную систему счисления, в данном случае трёхразрядную. Ну, или троичную. И всё
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 8961
Рейтинг: 824
#6: 2011-11-08 14:36:33 ЛС | профиль | цитата
ser_davkin, арифметику подучить придётся
sаmakacd, не совсем просто, даже подобная задача была по переводу чисел из одной чужой системы в другую, тоже чужую, из решения кусочек вытащил: code_25725.txt
------------ Дoбавленo в 14.36:
Весь алфавит не рекомендую использовать
карма: 19

1
файлы: 1code_25725.txt [3.7KB] [128]
Голосовали:sаmakacd
Ответов: 1536
Рейтинг: 176
#7: 2011-11-08 14:38:28 ЛС | профиль | цитата
Леонид, а так не проще, даже без систем счисления?
Add(Edit,6993181,133,280)
{
Left=30
Top=10
Width=230
Text="ABC"
link(onEnter,3544414:doLength,[])
}
Add(For,4336989,280,287)
{
link(onEvent,7760515:doFor,[])
link(End,13845721:Var2,[])
}
Add(For,7760515,329,287)
{
link(onEvent,12096387:doFor,[])
link(End,12812589:Var2,[])
}
Add(For,12096387,378,287)
{
link(onEvent,6119720:doString,[(484,293)(484,422)(310,422)(310,370)])
link(End,12812589:Var3,[(391,268)])
}
Add(GetDataEx,13845721,287,263)
{
Angle=3
link(Data,4192504:Result,[(260,268)(260,331)(230,331)])
}
Add(GetDataEx,12812589,336,263)
{
Angle=3
link(Data,13845721:Var3,[])
}
Add(ListBox,9640706,434,364)
{
Left=30
Top=40
Width=225
Height=335
}
Add(MultiReplace,10750256,378,364)
{
ReplaceList="0=A;
1=B;
2=C;"
link(onResult,9640706:doAdd,[])
}
Add(FormatStr,6119720,322,364)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,10750256:doMultiReplace,[])
link(Str1,4336989:Position,[(328,331)(286,331)])
link(Str2,7760515:Position,[])
}
Add(Length,3544414,182,287)
{
link(onLength,4192504:doOperation,[])
}
Add(Math,4192504,224,287)
{
OpType=1
Op2=1
ResultType=0
link(onResult,4336989:doFor,[])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

1
Голосовали:sаmakacd
Ответов: 8961
Рейтинг: 824
#8: 2011-11-08 15:37:06 ЛС | профиль | цитата
ser_davkin, для заранее определённого количества заранее определённых символов -- конечно
карма: 19

0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)