Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: 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 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.011 c
11-1116841940
Thaddy
2005-05-23 13:52
2006.02.05
Instructions on how to use Freepascal 2.0.0


1-1135780482
MakNik
2005-12-28 17:34
2006.02.05
уменьшить размер ехе-файла, ... путем деления...


15-1137503871
IceBeerg
2006-01-17 16:17
2006.02.05
Самовольный dualup


6-1130347888
Plastic Angel
2005-10-26 21:31
2006.02.05
Теоретический вопрос. Алгоритм.


9-1124615893
McSource
2005-08-21 13:18
2006.02.05
Освещение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский