2012-04-14 6 views
0

Я генерирую случайные числа, используя srand (time (NULL)). Любая идея, почему она всегда дает только случайные числа? В моем случае это так. Пожалуйста, помогите, мне тоже нужны лишние цифры. Мне нужен набор 0s, 1s. для например: {} 1,1,0,0,1,0,0,0,1,1,0Генератор случайных чисел с семян

+5

Не видя код, который вы используете. –

+0

Ты делаешь что-то не так. Пожалуйста, покажите нам свой код. –

+2

srand (time (NULL)) - это просто семя. Покажите нам свой код, где функция rand() назначает числа. – ScarletAmaranth

ответ

0

Подумайте инициализации ПСЧ как инициализация переменной ... Вы не делаете

// pseudo-code 
// print numbers from 1 to 10 
do 10 times 
    number_to_print = 1 
    print number_to_print 
    number_to_print++ 
end loop 

Аналогичным образом, srand() следует вызывать только один раз за прогон программы.

call srand() // initialize PRNG 
loop 
    rand() 
end loop 
3

Вызов

srand(time(NULL)); 

только один раз в начале программы, ее «перетасовывает» случайную последовательность.

Затем вызовите

rand(); 

И это возвращает число в диапазоне от 0 до RAND_MAX.

Если вы хотите только 0 или 1, то вы можете попробовать с

int n = rand() % 2; 

или

int n = rand() & 0x01; 
+0

Спасибо, что это сработало сразу. –

Смежные вопросы