drand48(3) Library Functions Manual drand48(3) drand48 erand48 lrand48 nrand48 mrand48 jrand48 srand48 seed48 lcong48 - (libc -lc) #include double drand48(void); double erand48(unsigned short xsubi[3]); long lrand48(void); long nrand48(unsigned short xsubi[3]); long mrand48(void); long jrand48(unsigned short xsubi[3]); void srand48(long seedval); unsigned short *seed48(unsigned short seed16v[3]); void lcong48(unsigned short param[7]); glibc ( feature_test_macros(7)): : _XOPEN_SOURCE || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE 48 . drand48() erand48() [0.0, 1.0). lrand48() nrand48() [0, 2^31). mrand48() jrand48() [-2^31, 2^31). srand48() seed48() lcong48() drand48() lrand48() mrand48(). erand48() nrand48() jrand48() . 48 Xi : Xn+1 = (aXn + c) mod m, where n >= 0 m = 2^48 48 . lcong48() a c : a = 0x5DEECE66D c = 0xB drand48() erand48() lrand48() nrand48() mrand48() jrand48() Xi 48 . Xi . drand48() lrand48() mrand48() Xi 48 . erand48() nrand48() jrand48() Xi xsubi. Xi . srand48() 32 Xi seedval. 16 0x330E. seed48() Xi 48 seed16v. Xi seed48() . lcong48() Xi a c. param[0-2] Xi param[3-5] a param[6] c. lcong48() srand48() seed48() a c. attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |drand48(), | | MT-Unsafe | |erand48(), | | race:drand48 | |lrand48(), | | | |nrand48(), | | | |mrand48(), | | | |jrand48(), | | | |srand48(), | | | |seed48(), | | | |lcong48() | | | +------------+------------------------------------+--------------------+ . POSIX.1-2008. POSIX.1-2001 SVr4. rand(3) random(3) 3 . . : . 6.18 8 2026 drand48(3)