Jump to content

Knapsack problem/0-1: Difference between revisions

Line 1,109:
Random values origin are automatically assigned create integral of quantity and quality
 
<lang QB64> using System;using System.Text; // KNAPSACKKnapsack 0-1C# binary DANILIN
using System.Text; // rextester.com/EAFWD33169
namespace Knapsack { class Program { static void Main()
namespace Knapsack
{
{ int n=5; int G=5; int u=n+1; int a=Convert.ToInt32(Math.Pow(2,u));
class Knapsack
int[] L = new int[n]; int[] C = new int[n]; int[] j = new int[n];
{
int[] q = new int[a]; int[] S = new int[a]; int[] d = new int[a];
static void Main()
int dec; int i; string[] e = new string[a];
{
int h; int k; int max; int m; Random rand = new Random();
int n = 7;
int Inside = 5;
int all=Convert.ToInt32(Math.Pow(2,(n+1)));
int[] mass = new int[n];
int[] cost = new int[n];
int[] jack = new int[n];
int[] quality = new int[all];
int[] amount = new int[all];
int i; // circle
int k; // circle
int dec;
string[] bin = new string[all];
int list;
int max;
int max_num;
Random rand = new Random();
 
for (i=0; i<n; i++) // https://rextester.com//OIALC94208
{
{L[i]=1+rand.Next(3); C[i]=10+rand.Next(9);
mass[i]=1+rand.Next(3);
Console.Write(i+1); Console.Write(" ");
cost[i]=10+rand.Next(9);
Console.Write(L[i]); Console.Write(" ");
Console.Write(C[i]);Console.WriteLine(+1);
} Console.WriteLineWrite(" ");
Console.Write(mass[i]);
Console.Write(" ");
for (h = a-1; h>(a-1)/2; h--)
Console.Write(cost[i]);
{ dec=h; while (dec > 0)
Console.WriteLine();
{ e[h] = dec % 2 + e[h]; dec/=2; }
if (e[h] == "") {e[h] = "0"; }
Console.WriteLine();
e[h]=e[h].Substring(1,e[h].Length-1);
 
for (list = all-1; list>(all-1)/2; list--)
for (k=0; k<n; k++)
{
{j[k]=Convert.ToInt32(e[h].Substring(k,1));
dec=list;
while (dec > 0)
q[h]=q[h]+L[k]*j[k]*C[k];
{
d[h]=d[h]+L[k]*j[k];}
bin[list] = dec % 2 + bin[list]; // from 10 to 2
dec/=2;
if (d[h]<= G)
}
{ Console.Write(G); Console.Write(" ");
if (bin[list] == "")
Console.Write(d[h]); Console.Write(" ");
{
Console.Write(q[h]); Console.Write(" ");
bin[list] = "0";
Console.WriteLine(e[h]);}
}
} Console.WriteLine();
bin[list]=bin[list].Substring(1,bin[list].Length-1);
 
max=0; m=1;
for (ik=0; ik<an; ik++) // inside 01
{
{ if (d[i]<=G && q[i]>max)
jack[k]=Convert.ToInt32(bin[list].Substring(k,1));
{ max=q[i]; m=i;}}
quality[list]=quality[list]+mass[k]*jack[k]*cost[k]; // integral of costs
amount[list]=amount[list]+mass[k]*jack[k]; // integral of mass
}
if (amount[list]<= Inside) // current mass < Knapsack
{
Console.Write(Inside);
Console.Write(" ");
Console.Write(amount[list]);
Console.Write(" ");
Console.Write(quality[list]);
Console.Write(" ");
Console.WriteLine(bin[list]);
}
}
Console.WriteLine();
 
max=0;
max_num=1;
for (i=0; i<all; i++)
{
if (amount[i]<=Inside && quality[i]>max)
{
max = quality[i]; max_num =i ;
}
}
Console.Write(damount[mmax_num]); Console.Write(" ");
Console.Write(q[m]); Console.Write(" ");
Console.WriteLine Write(equality[mmax_num]);}
Console.Write(" ");
}}</lang>
Console.WriteLine (bin[max_num]);
}
}
}</lang>
 
{{out}}
51

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.