Generator kodów C++

0

Czy jest mi ktoś w stanie pokazać przykładowy generator kodów? Chciałbym, żeby mi wylosowało jakiś kod, który składać się będzie z liter: abcde
I żeby zawierał 10 elementów. Jest mi ktoś w stanie pokazać przykładowy kod, bądź taki znaleziony w internecie albo może opisać krok po kroku jak się za to zabrać? Przeglądanie w pętli jasna sprawa, tylko nie wiem jak zrobić, żeby losowanie zawierało określoną liczbę znaków. Czyli np. 10 kodów po 10 znaków każdy mogących zawierać co najmniej każdą literę raz.

Po prostu chciałbym zobaczyć jak coś takiego wygląda. Łatwiej mi się uczyć i tworzyć jakieś zadania/projekty jeżeli wiem jak coś wygląda. Wtedy sam sobie sprawdzam, bawię się i testuję.

0
  1. Dynamicznie alokujesz pamięć dla napisu.
  2. Dla każdej komórki po kolei losujesz liczbę z odpowiedniego zakresu, tak aby była ona literą w kodzie ASCII.
  3. Po losowaniu nowego znaku, sprawdzasz czy wystąpił on wcześniej w innych komórkach tablicy z użyciem pętli. Jeśli wystąpił, to powtarzasz losowanie tak długo aż trafisz na znak, który wcześniej nie wystąpił.
  4. Tu możesz coś zrobić z kodem, np. wyświetlić go.
  5. Zwalniasz przydzieloną pamięć.
    Zamiast dynamicznie alokować pamięć, możesz też użyć klasy string, ale w takim przypadku to nie będzie konieczne, gdy z góry jest znana długość napisu ze znakami.
3

@amb00 można zdecydowanie prościej:

Tworzysz sobie statyczną tablicę wszystkich dozwolonych znaków i teraz w zależności od efektu jaki chcesz uzyskać:

  • losowanie z powtórzeniami:

    std::vector<elem_type> vec = {};
    for (size_t i = 0; i < elems_count; ++i) vec.push_back(values[random()]);
    
  • losowanie bez powtórzeń:

    std::shuffle(values.begin(), values.end());
    for (size_t i = 0; i < elems_count; ++i) std::cout << values[i] << '\n';
    

PS To jest pseudokod pisany na szybko, ale daje pogląd co trzeba zrobić.

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