Форум: "Прочее";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];
ВнизРекурсия - непонятная штука! Найти похожие ветки
← →
Deqww (2006-09-15 18:57) [0]Помогите, пожалуйста! Нужно написать рекурсивную процедуру решения нижеприведенной задачи.
Просто ну не понимаю я рекурсии. Кто знает, посоветуйте, что можно почитать про рекурсию. Буду очень благодарен.
Вводятся два числа - N и K. Требуется вывести в файл все цепочки длины N
такие, что на каждом месте может стоять любое число от 1 до K.
Например, для N=2, K=3 должно быть выведено:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
← →
Плохиш © (2006-09-15 18:59) [1]Здесь рекурсия никаким боком, обычный вложенный цикл.
← →
Palladin © (2006-09-15 18:59) [2]А что ты знаешь про рекурсию?
← →
Плохиш © (2006-09-15 19:00) [3]И, кстати, результат вывода не соответствует заданию.
← →
Alien1769 © (2006-09-15 19:01) [4]Разрабатывая программы на языке программирования, мы пользовались методом выделения составных частей в задаче. В итоге наши программы складывались, как из кубиков, из отдельных модулей - процедур, которые содержат обращения друг к другу.
Возникает вопрос - может ли процедура содержать обращение к самой себе и, если ответ "да", что из этого может получиться? Действительно, не все языки программирования поддерживают эту возможность, но такие обращения разрешены и порою приводят к очень интересным результатам.
Называется это рекурсией.
Рекурсия - это такая организация алгоритма, при которой процедура обращается к самой себе. Сама процедура называется рекурсивной.
← →
Palladin © (2006-09-15 19:01) [5]
> [1] Плохиш ©
ну студент это... студент... задач у него такой :)
← →
Ketmar © (2006-09-15 19:11) [6]> [5] Palladin © (15.09.06 19:01)
неа, не студент. лентяй это.
← →
vidiv © (2006-09-15 19:58) [7]а если я буду использовать дин. массивы и goto? это будет рекурсией? =)
← →
Deqww (2006-09-15 20:02) [8]Нужно решить задачу именно рекурсивным способом!!!!
← →
Palladin © (2006-09-15 20:07) [9]Нужно так решай, поди на практических занятия примеры решения подбного давали...
← →
Alien1769 © (2006-09-15 20:13) [10]
> Нужно решить задачу именно рекурсивным способом!!!!
Сумма....
← →
Gydvin © (2006-09-15 20:19) [11]Когда-то делал
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure keychet;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
t: array[1..33] of integer;
stop: integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure tform1.keychet;
var
x, i: integer;
s: string;
begin
x := 33;
s := "";
if t[x] = 33 then begin
while t[x] = 33 do begin
dec(x);
if x = 0 then begin
stop := 1;
exit;
end;
end;
inc(t[x]);
inc(x);
if x > 33 then exit;
for i := x to 33 do t[x] := 0;
end else inc(t[x]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
stop := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
begin
caption := "";
for x := 1 to 33 do caption := caption + inttostr(t[x]) + ".";
if stop = 1 then begin
showmessage("End!");
exit;
end;
keychet;
end;
end.
← →
Помогающий =) (2006-09-15 20:19) [12]n_o=3
k_o=3
типа старт
n=1
pn(n)
типа енд
proc pn(n)
k=1
pk(k, n)
n = n+1
if n < n_o then pn(n)
proc pk(k,n)
k = k+1
вывод(n k)
if k < k_o then pk(k)
Вот общие наброски, дальше сам.
← →
Gydvin © (2006-09-15 20:20) [13]как нужно сам переделаешь
← →
Бесконечное пиво © (2006-09-15 20:35) [14]Чтобы понять, что такое рекурсия, надо понять, что такое рекурсия.
← →
Alien1769 © (2006-09-15 20:37) [15]Спасение утопающих - дело рук самих утопающих (С)
Автор сам больше не пишет а мы тут такие добрые...
← →
Ketmar © (2006-09-15 20:44) [16]лично мы -- злые. потому что тяпница, а трезвые.
← →
Anatoly Podgoretsky © (2006-09-15 21:51) [17]Начались занятия в школах?
← →
Ketmar © (2006-09-15 21:58) [18]> [17] Anatoly Podgoretsky © (15.09.06 21:51)
нет. контрольные, наверное.
← →
Cyrax © (2006-09-15 22:37) [19]А какой это класс ?
← →
default © (2006-09-16 00:06) [20]http://algolist.manual.ru/maths/combinat/seqnm.php
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c