Problem Plecakowy

0

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.


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]);
    }

0

Podstawowe pytania:
W której linijce jest błąd?
oraz:
Czy próbowałeś debugować?

0

stack trace i debuger - jak widać po raz kolejny - to czarna magia, dostępna tylko dla wybrańców.

na sam koniec wypisujesz sobie Wynik[LiczbaElemetow], to pewnie jedyny kawałek kodu dopisany przez Ciebie i to on wywala kod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0