Форум: "Прочее";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизЗадача по программированию Найти похожие ветки
← →
Тульский © (2006-01-13 09:12) [0]На складе имеется N пустых мешков :) Составить программу, которая бы искала все возможные варианты расположения мешков относительно друг друга.
Пример. Имеется два мешка 1[] и 2[], тогда все варианты для них:
1. 1[] и 2[] - два пустых мешка
2. 1[2[]] - мешок 2[] положили в мешок 1[]
3. 2[1[]] - мешок 1[] положили в мешок 2[]
для трех мешков:
1. 1[] и 2[] и 3[] - три пустых мешка
2. 1[] и 2[3[]] - мешок 1[] пустой, а в 2[] положили 3[]
...
ну так далее.
← →
Думкин © (2006-01-13 09:16) [1]Мешки с отметками(нумерацией)?
← →
Тульский © (2006-01-13 09:21) [2]
> Думкин © (13.01.06 09:16) [1]
да
← →
ЮЮ © (2006-01-13 09:26) [3]Ну и в чем здесь сложность - генерировать N в степени N исходов (каждый мешок может находиться в любом из N-1 мешком и не находиться внутри ни одного мешка), исключая "циклические", как невозможные.
так в случае с 2-мя мешками вариант 1[2] и 2[1] - невозможен
← →
зав.складом (2006-01-13 09:31) [4]мешки "математические"? и емкость их тоже не ограничена?
а то как же 750 пустых в один положишь 8-))
← →
Тульский © (2006-01-13 09:34) [5]
> ЮЮ © (13.01.06 09:26) [3]
> Ну и в чем здесь сложность
:)
вот в этом
> генерировать N в степени N исходов (каждый мешок может находиться
> в любом из N-1 мешком и не находиться внутри ни одного мешка),
> исключая "циклические", как невозможные
← →
Тульский © (2006-01-13 09:34) [6]
> зав.складом (13.01.06 09:31) [4]
> мешки "математические"? и емкость их тоже не ограничена?
>
не ограничена, конечно
← →
Igorek © (2006-01-13 10:15) [7]простая задача
← →
Тульский © (2006-01-13 10:18) [8]
> Igorek © (13.01.06 10:15) [7]
> простая задача
Простейшая
← →
MBo © (2006-01-13 14:13) [9]для простоты реализации - NM не более 9 (однозначные числа)
procedure TForm12.Button1Click(Sender: TObject);
var
NM: byte;
procedure Meshki(s:string; b:byte);
var
bb: byte;
ss: string;
begin
if b > NM then
Memo1.Lines.Add(s)
else begin
Meshki(s + IntToStr(b) + " ", b + 1);
for bb := Length(s) downto 1 do begin
ss:=s;
Insert(IntToStr(b), ss, bb);
Meshki(ss, b + 1);
end;
end;
end;
begin
NM := 4;
Meshki("", 1);
Memo1.Lines.Add(IntToStr(Memo1.Lines.Count) + " variants");
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c