Я пишу программу, которая использует случайные числа широко по-разному, и каждый раз получаю одинаковые случайные числа. Я знаю, чтобы положить srand(time(NULL));
в начале программы, чтобы засеять генератор случайных чисел, и поэтому у меня это есть, но он не работает. Возможно, это имеет какое-то отношение к XCode или Mac или к чему-то еще? Я не могу найти аналогичную проблему в Интернете, у меня есть решение, которое я еще не пробовал. Некоторые способы я использую случайных чисел являются:Ошибка генерации случайных чисел в C++ на Mac с помощью Xcode
for (int i=0; i<num; i++)
{
chrom_arr[i] = i;
}
random_shuffle(&chrom_arr[0], &chrom_arr[num-1]);
(чтобы получить массив с серией случайных целых чисел от 0 до Num-1)
int crossover = rand() % num;
и другие простые вещи, как это. Несмотря на то, что у меня есть srand(time(NULL));
в начале, он все равно не работает. Я также пробовал srand(time(0));
, а также помещал его в разные части программы, но с тех пор я узнал, что это неправильно.
Фактически это будет между 0 и num-2, так как конечный итератор должен быть один за концом. Использование 'std :: end', вероятно, помешало бы этому. –
Вы всегда получаете одинаковые номера? Даже если вы ждете пять минут между прогонами? – rici
Вы правы - это правда, и я только что исправил это. Я все равно получаю одинаковые случайные числа (хотя теперь они отличаются от тех, которые я продолжал получать раньше) – Alex