Инициализировать генератор псевдослучайных чисел
#include <stdlib.h>char * initstate( unsigned int seed,char *state,size_t size );
libc
Функция initstate() инициализирует массив состояний state для будущего использования в генерации псевдослучайных чисел.
Данная функция использует аргумент size для определения типа генератора случайных чисел; чем больше размер массива state, тем более случайными будут числа. Аргумент size может принимать значения 8, 32, 64, 128, и 256 байт. Другие значения, больше 8, будут округляться до ближайшего из этих значений. Если size меньше 8, random() использует линейный конгруэнтный метод.
Данную функцию можно использовать в сочетании со следующими функциями:
Без вызова initstate(), random() будет работать так, как при вызове initstate() с seed, равным 1 и size, равным 128.
После инициализации можно перезапустить массив состояний state с другим seed следующими способами:
Указатель на предыдущий массив состояний или NULL в случае ошибки.
#include <stdlib.h>#include <stdio.h>#include <time.h>static char state1[32];int main(){initstate( time( NULL ), state1, sizeof( state1 ) );setstate( state1 );printf( "%d0\n", random() );return (EXIT_SUCCESS);}
POSIX 1003.1 X/Open Systems Interfaces Extension
drand48(), rand(), random(), setstate(), srand(), srandom()
Предыдущий раздел: Описание API системной библиотеки