Мне нужно создать массив случайных неповторяющихся чисел в C ++, в этой части кода я генерирую случайные числа, используя функцию srand, но некоторые числа повторяются. Основная задача состоит в том, чтобы генерировать случайные числа для лотерейного билета, поэтому мне нужно генерировать числа до золотого номера, который помечается как золотой.
#include <cstdlib> #include <ctime> #include <iostream> using namespace std; int main() { int golden = 31; int i = 0; int array[35]; srand((unsigned)time(0)); while(i != golden){ array[i] = (rand()%75)+1; cout << array[i] << endl; i++; } }
Одна стратегия состоит в том, чтобы заполнить массив числами от 1 до 75, а затем использовать std::random_shuffle()
в теме. Затем вы можете читать числа из массива, пока не нажмете золотое число.