Конференция "Прочее" » Все комбинации
 
  • viper (24.10.08 13:18) [80]
    Наиль, я и сам могу протрассировать выполнение проги в уме. Но не знаю, как сделать верную рекурсию...
  • Наиль © (24.10.08 13:21) [81]
    > Твой вариант, с кодированием, мне кажется довольно сложным.
    > Разве рекурсия не будет проще?

    Могут быть более короткими, но очень(!) тяжело отлаживаются и часто приводят к зависанию программы из-за переполнения стека.
  • viper (24.10.08 13:24) [82]
    Я придумал вот что: в момент очередной итерации нужно вызвать рекурсию с началом в этой строке, но как ее ограничить? Завершить?
  • Наиль © (24.10.08 13:26) [83]
    Завершают рекурсию почти всегда одинаково:
    if условие then Exit;

  • Сергей М. © (24.10.08 13:28) [84]

    > вариант, с кодированием, мне кажется довольно сложным. Разве
    > рекурсия не будет проще?


    В огороде бузина, а в Киеве дядька.
    Две никак не связанные вещи.

    Рекурсивные методы вычислений полезны (а чаще попросту необходимы как единственно возможные) в алгоритмах с возвратом.

    Откуда и куда ты вознамерился в данном случае "возвращаться" - ума не приложу.

    Впрочем, гланды конечно можно удалять и через задний проход)
  • viper (24.10.08 13:32) [85]
    Наиль, не то. Я имею ввиду, что нужно каким-то образом ограничить ее выполнение.
    Вот пусть у нас есть буквы А, В, С.
    Необходимо получить на выходе список:
    А
    В
    С
    АА
    АВ
    АС
    ВА
    ВВ
    ВС
    ...
    СС
    ААА
    ААВ
    ААС
    ВАА
    ВАВ
    ВАС
    ...
    ССС

    вначале у нас идет просто цикл
    а вот затем где-то нужна рекурсия
    вот как ее сделать?
  • Сергей М. © (24.10.08 13:35) [86]
  • Johnmen © (24.10.08 13:36) [87]

    > Можно просто, по-человечески помочь.

    Написать за тебя лабу стОит денег.
  • viper (24.10.08 13:37) [88]
    За меня не нужно писать лабу.
  • Ega23 © (24.10.08 13:38) [89]
    Ну вот, собственно, опять скатились к деньгам. Кто там такой правильный был и выступал, что это аморально? Вот пусть сначала десятку идиотов поотвечает, а потом за мораль с ним поговорим.
  • viper (24.10.08 13:44) [90]
    Я не идиот. Тут дали советы, тысячи их! Но самое забавное, что по делу - ни одного.
    procedure generate;
        | var i,j : integer;
        begin
        | if t = n then begin
        | | for i:=1 to n do begin
        | | | write(a[i]);
        | | end;
        | | writeln;
        | end else begin {t < n}
        | | for j:=1 to k do begin
        | | | t:=t+1;
        | | | a[t]:=j;
        | | | generate;
        | | | t:=t-1;
        | | end;
        | end;
        end;
    это вы мне предложили использовать?
  • Johnmen © (24.10.08 13:45) [91]

    > За меня не нужно писать лабу.

    А это про что
    Помогите, не могу понять, какой алгоритм позволит решить следующую задачу

    ?
    Или достаточно было ответить: алгоритм Дуремарова-Шнеерсона? И как ты пытался понять, какой? Выбирал из списка?
  • Putnik © (24.10.08 13:46) [92]
    Почитай, может что пригодится
    http://algolist.manual.ru/maths/combinat/sequential.php
  • Putnik © (24.10.08 13:46) [93]
    Почитай, может что пригодится
    http://algolist.manual.ru/maths/combinat/sequential.php
  • Putnik © (24.10.08 13:46) [94]
    Почитай, может что пригодится
    http://algolist.manual.ru/maths/combinat/sequential.php
  • Putnik © (24.10.08 13:46) [95]
    Почитай, может что пригодится
    http://algolist.manual.ru/maths/combinat/sequential.php
  • Putnik © (24.10.08 13:47) [96]
    Удалите, утроение, пожалуйста, браузер сглючил
  • Сергей М. © (24.10.08 13:47) [97]
    Это надо не использовать, а проанализировать логику закодированного в этом фрагменте алгоритма, и на основе проведенного анализа сделать умозаключение, можно ли и каким образом адаптировать этот алгоритм к своей , довольно похожей задаче.
  • Ega23 © (24.10.08 13:49) [98]

    > Я не идиот. Тут дали советы, тысячи их! Но самое забавное,
    >  что по делу - ни одного.


    Не можешь сделать сам - плати бабки, желающих подзаработать тут полно.
    Советов тебе дали - кучу. Все - по делу. Какие-то лучше, какие-то хуже, но все по делу.
  • viper (24.10.08 13:49) [99]
    Я не вижу способов адаптировать это к моей, довольно похожей задаче. Просто потому, что здесь используется массив.
 
Конференция "Прочее" » Все комбинации
Есть новые Нет новых   [134444   +24][b:0][p:0.001]