Инициализировать генератор псевдослучайных чисел
#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 системной библиотеки