Napisałem metodę do obliczania liczb bez powtórzeń. Niestety nie działa ona poprawnie, liczby się powtarzają. Czy ktoś może mi powiedzieć gdzie jest błąd? Dodam, że jest to mój 2 dzień z c#.
public void LosujLiczbe()
{
List<int> tab = new List<int> { 1, 2, 3, 4, 5, 6 };
List<int> wynik = new List<int> { };
for (int i = 0; i < 4; i++)
{
Random random = new Random();
int randomNumber = random.Next(tab.Count);
wynik.Add(randomNumber);
tab.Remove(i);
}
}
Znalazłem na necie kod który powinien działać, ale też nie potrafię go "poprawnie" użyć, również wyświetla mi powtarające się liczby.
public void Losowanie(int n, int k)
{
//n = zakres losowanych liczb
//k = ilosc losowanych liczb
Random rand = new Random();
// wypełnianie tablicy liczbami 1,2...n
int[] numbers = new int[n];
for (int i = 0; i < n; i++)
numbers[i] = i + 1;
// losowanie k liczb
for (int i = 0; i < k; i++)
{
// tworzenie losowego indeksu pomiędzy 0 i n - 1
int r = rand.Next(n);
// wybieramy element z losowego miejsca
wynik.Add(r);
// przeniesienia ostatniego elementu do miejsca z którego wzięliśmy
numbers[r] = numbers[n - 1];
n--;
}
}