Задача о ранце - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите,пожалуйста, реализовать алгоритм задачи о рюкзаке. на сайте видел некоторые реализации. хотелось бы переделать данный код с делфи на си #. а задача о ранце заключается в следующем: имеется N видов предметов различного веса и стоимости. И рюкзак ёмкости М. Нужно определить комбинацию предметов, которые можно вместить в рюкзак,чтобы общая стоимость предметов была максимальной.
Type Item=Record
         size,val:integer;
end;
var Items:array[0..N] of item;
 
function knap(M:integer):integer;
var i,space,max,maxi,t:integer;
begin
for i:=0 to N-1 do
begin
space:=M-items[i].size;
if space >=o then
begin 
t:=knap(space)+items[i].val;
if t>max then
begin
max:=t;
maxi:=I;
end;
end;end;
D[M]:=max; D1:=maxi;
end;
Knap:=D[M]  
end;
space:=M;
repeat writeln(D1[space]);
space:=space-items[D1[space]].size;
until space<==0;

Решение задачи: «Задача о ранце»

textual
Листинг программы
        struct Predmet
        {
            public Int32 Stoimost, Ves;
            public String Name;
        }
        Predmet[] Rukzak1, Rukzak2, All_Item;
        Int32 All_ves = 0;
        Predmet[] a;
        List<Predmet> predmeti = new List<Predmet>();
        Int32 predidush = 0;
 
//Функция которая раскладывает по рюкзакам
        void perestanovk_p(int k)
        {
            int ggg = 0;
            if (k < 0)
            {
                for (int i = 0; i < All_Item.Length / 2; i++)
                    ggg += All_Item[i].Ves;
                
            }
            else
            {
                for (int i = 0; i <= k; i++)
                {
                    Predmet z = a[i];
                    a[i] = a[k];
                    a[k] = z;
                    perestanovk_p(k - 1);
                    z = a[i];
                    a[i] = a[k];
                    a[k] = z;
                }
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5