Конференция "Прочее" » Все комбинации
 
  • viper (24.10.08 10:58) [0]
    Здравствуйте!
    Помогите, не могу понять, какой алгоритм позволит решить следующую задачу:
    есть последовательность из букв, к примеру, от A до F. Необходимо вывести все возможные комбинации этих букв, от просто A до FFFFFF включительно.
  • Ega23 © (24.10.08 11:01) [1]

    > Необходимо вывести все возможные комбинации этих букв


    Так, каким образом поставлена задача - невозможно. Их бесконечное количество.
  • tesseract © (24.10.08 11:03) [2]

    > Так, каким образом поставлена задача - невозможно. Их бесконечное
    > количество.


    основание системы  в степени позиций т.е в данном случае 6^6.
  • viper (24.10.08 11:03) [3]
    Не ясно, что не так в моей постановке задачи, но количество отнюдь не бесконечно:
    A
    B
    C
    ...
    F
    AA
    AB
    ...
    AF
    ...
    AAAAAA
    ...
    FFFFFF
  • viper (24.10.08 11:04) [4]
    Извиняюсь, FF на месте AF.
  • viper (24.10.08 11:08) [5]
    То есть поясните, пожалуйста, как получить необходимые комбинации?
  • viper (24.10.08 11:18) [6]
    Неужели никто не может помочь?
  • Сергей М. © (24.10.08 11:22) [7]
    Чем же тебе помочь, убогий ?
    Программу что ли за тебя написать ?
  • boriskb © (24.10.08 11:24) [8]
    Стоит всё же крепко задуматься:
    чего же больше от таких форумов - вреда или пользы?
  • brother © (24.10.08 11:26) [9]
    держи

    procedure TForm1.Button1Click(Sender: TObject);
    var a,b,c,d,e,f:integer;
       res:string;
    begin
       
    for a:=64 to 70 do
         for b:=64 to 70 do
          for c:=64 to 70 do
           for d:=64 to 70 do
            for e:=64 to 70 do
             for f:=64 to 70 do
             begin
               res:='';
               if a<>64 then res:=chr(a);
               if b<>64 then res:=res+chr(b);
               if c<>64 then res:=res+chr(c);
               if d<>64 then res:=res+chr(d);
               if e<>64 then res:=res+chr(e);
               if f<>64 then res:=res+chr(f);

               memo1.Lines.Add(res);
             end;
    end;

    оно?
    зы не спрашивай почему с 64, а не с 65...)
  • viper (24.10.08 11:28) [10]
    Простите, за что такие оскорбления? Я начинающий студент и не могу взять в толк АЛГОРИТМ перебора всех таких комбинаций. Если можете помочь с ним, то я сам напишу программу. Или хотя бы подскажите, в какую сторону двигаться. Я же вас не оскорблял.
  • viper (24.10.08 11:29) [11]
    brother, код не оптимален, очевидно же.
  • Ega23 © (24.10.08 11:31) [12]

    > Я начинающий студент и не могу взять в толк АЛГОРИТМ перебора
    > всех таких комбинаций


    какой тут алгоритм? цикл - он и в Африке цикл.
    А если ты не можешь его придумать, то может стоит задуматься о смене профессии? Я серьёзно, без подколок.
    Студент на то и студент, чтобы самому эти вещи придумывать. Пусть коряво, пусть неоптимально. Но - САМ.
    Иначе грош тебе цена потом.
  • Ega23 © (24.10.08 11:32) [13]

    > brother, код не оптимален, очевидно же.


    Конечно, тут рекурсия нужна.
  • Правильный$Вася (24.10.08 11:33) [14]
    простейший - шесть вложенных циклов
  • brother © (24.10.08 11:34) [15]
    > brother, код не оптимален, очевидно же.

    не, вы посмотрите на него, ему код привели, он еще и фу говорит ;)! Господа, я умываю руки
    зы автор, я тебе идею дал, оптимизация - твое домашнее задание...
  • viper (24.10.08 11:35) [16]
    Я придумал точно то же, что написал brother, но это, повторюсь, неоптимально. На васме я нашел целую статью по инкременту пароля (поскольку рассудил, что задача моя имеет по принципу схожесть с брутфорсерами). Только вот нельзя ли сделать решение моей задачи проще? К чему такие нападки?
  • Правильный$Вася (24.10.08 11:36) [17]

    > Конечно, тут рекурсия нужна.

    это как раз в данном случае - излишне
    она нужна, когда не известен заранее уровень вложенности циклов
  • Ega23 © (24.10.08 11:37) [18]

    > Я придумал точно то же, что написал brother, но это, повторюсь,
    >  неоптимально.


    Уверен?
  • Правильный$Вася (24.10.08 11:37) [19]

    > нельзя ли сделать решение моей задачи проще?

    можно
    думай, пробуй
 
Конференция "Прочее" » Все комбинации
Есть новые Нет новых   [134444   +23][b:0.001][p:0.001]