Вниз
Скачать: CL | DM;

Задача по программированию   Найти похожие ветки 

← →
Тульский ©   (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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.023 c
15-1137364378
wow
2006-01-16 01:32
2006.02.05
Просмотреть DLL - ку хочу


2-1137864246
asd
2006-01-21 20:24
2006.02.05
Отчётность


3-1133813794
makvell
2005-12-05 23:16
2006.02.05
сформировать список...


4-1132644725
Pank83
2005-11-22 10:32
2006.02.05
Отследить запуск процесса


3-1133879911
Sergey_Masloff
2005-12-06 17:38
2006.02.05
NVL для NUMERIC в FireBird




   Наверх