Вы можете сгенерировать псевдослучайное число, используя stdlib.h . Просто включите stdlib, затем позвоните по номеру
double random_number = rand() / (double)RAND_MAX;
Предполагая, что ОП хочет либо 0, либо 1:
srand(time(NULL));
foo = rand() & 1;
Редактирование, вдохновленное комментарием:
Старые реализации rand()
имели недостаток - биты низшего порядка имели гораздо более короткие периоды, чем биты высшего порядка, поэтому использование младшего бита для таких реализаций не очень хорошо.
Если вы знаете, что ваша реализация rand()
страдает от этого недостатка, используйте старший бит, например, так:
foo = rand() >> (sizeof(int)*8-1)
предполагая обычные архитектуры 8 бит на байт
man 3 drand48 - это именно то, что вы просили.
Функции drand48() и erand48() возвращают неотрицательные значения двойной точности с плавающей точкой, равномерно распределенные по интервалу [0.0 , 1.0].
Они находятся в #include
на платформах UNIX. Однако их нет в ANSI C, поэтому (например) вы не найдете их в Windows, если только не принесете свою собственную реализацию (например, LibGW32C).