Witam, nie wiem dlaczego ale ciągle pokazuje mi, że indeks wykracza poza granice tablicy;/ korzystałem z pseudokodu z wikipedii i nie działa, proszę o pomoc. Przy wywołaniu metody podaję pojemność plecaka i liczbę elementów.
[code]
static void ProblemPlecakowy(int LiczbaElemetow, int MaxCiezar)
{
int[] WartoscE = new int[LiczbaElemetow];
int[] WagaE = new int[LiczbaElemetow];
int[] Wynik = new int[MaxCiezar];
Random LosowaWartosc = new Random();
for (int i = 0; i < LiczbaElemetow; i++)
{
WartoscE[i] = LosowaWartosc.Next(1, 10);
}
for (int l = 0; l < LiczbaElemetow; l++)
{
Console.WriteLine(WartoscE[l]);
}
Console.WriteLine();
Random LosowaWaga = new Random();
for (int i = 0; i < LiczbaElemetow; i++)
{
WagaE[i] = LosowaWaga.Next(1, MaxCiezar);
}
for (int m = 0; m < LiczbaElemetow; m++)
{
Console.WriteLine(WagaE[m]);
}
for (int i = 0; i < MaxCiezar; i++)
Wynik[i] = 0;
for (int i = 0; i < MaxCiezar; i++)
{
for (int j = 0; j < LiczbaElemetow; j++)
{
if (WagaE[j] <= i)
{
Wynik[i] = max(Wynik[i], Wynik[i - WagaE[j]] + WartoscE[j]);
}
}
}
Console.WriteLine("<><><><><><><><><><><><>");
for (int k = 0; k < MaxCiezar; k++)
Console.WriteLine(Wynik[k]);
Console.WriteLine(Wynik[LiczbaElemetow]);
}
[/code]