chcę zrobić w builderze c++ tablice do której będą zapisywane losowe, niepowtarzające się kolory, nie mam pojęcia jak to zrobić, proszę Was o pomoc
0
0
optymalne rozwiązanie zależy od tego ile około tych kolorów chcesz wylosować.
jak jest mało:
robisz stlową mapę kolorów to losujesz tak długo aż trafisz na nieużyty kolor i później wrzucasz go do mapy.
jak jest dużo:
zapisujesz sobie ile kolorów już wylosowałeś, wylosowany element wrzucasz do drzewa, które musisz zaprojektować tak, żeby szybko znaleźć i-ty nieustawiony kolor.
Granicę między dużo, a mało musisz znaleźć doświadczalnie.
0
kolorów będę potrzebować ok 25-30, jestem całkowicie zielony i nie wiem jak to zrobic...
1
Albo stwórz tablicę kolorów, a potem losuj z niej kolor i ustawiaj na końcu tablicy, po czym zmniejszasz zakres losowania o 1.
int kol[30] = {0, 1, 2, 3, 4, 5, 6, ... , 29 };
unsigned int los;
for(int i = 0; i < 30; ++i)
{
los = rand() % (30 - i);
swap(kol[los], kol[30 - i]);
}