drand48

Autres langues

Langue: ja

Version: 1993-07-02 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - °ìÍÍʬÉÛ¤¹¤ëµ¿»÷Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô

½ñ¼°


#include <stdlib.h>



double drand48(void);



double erand48(unsigned short xsubi[3]);



long int lrand48(void);



long int nrand48(unsigned short xsubi[3]);



long int mrand48(void);



long int jrand48(unsigned short xsubi[3]);



void srand48(long int seedval);



unsigned short *seed48(unsigned short seed16v[3]);



void lcong48(unsigned short param[7]);

ÀâÌÀ

¤³¤ì¤é¤Î´Ø¿ô¤ÏÀþ·Á¹çƱ¥¢¥ë¥´¥ê¥º¥à¤È 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,


¤³¤³¤Ç n >= 0 ¤Ç¤¢¤ë¡£ ¥Ñ¥é¥á¡¼¥¿¤¬ m = 2^48 ¤Ç¤¢¤ë¤¿¤á¡¢48¥Ó¥Ã¥ÈÀ°¿ô±é»»¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¡£ lcong48() ¤¬¸Æ¤Ð¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢a ¤È c ¤Ï°Ê²¼¤Î¼°¤ÇÍ¿¤¨¤é¤ì¤ë¡£


a = 0x5DEECE66D c = 0xB


´Ø¿ô drand48(), erand48(), lrand48(), nrand48(), mrand48(), jrand48() ¤ÇÊÖ¤µ¤ì¤ëÃͤϼ¡¤Î¤è¤¦¤Ë¤·¤Æ·×»»¤µ¤ì¤ë¡£ ¤Ï¤¸¤á¤Ë¡¢¼¡¤Î48¥Ó¥Ã¥È¤Î Xi ¤¬·×»»¤µ¤ì¤ë¡£ ¤½¤·¤Æ¡¢ÊÖ¤¹¤Ù¤­¥Ç¡¼¥¿¤Î·¿¤Ë°Í¸¤·¤¿Å¬ÀÚ¤Ê ¥Ó¥Ã¥È¿ô¤¬ Xi ¤Î¾å°Ì¥Ó¥Ã¥È¤«¤é¥³¥Ô¡¼¤µ¤ì¤ë¡£ ºÇ¸å¤Ë¡¢¤³¤ÎÃͤòÊÖ¤êÃͤËÊÑ´¹¤¹¤ë¡£

´Ø¿ô drand48(), lrand48(), mrand48() ¤Ï ºÇ¸å¤ËÀ¸À®¤µ¤ì¤¿48¥Ó¥Ã¥È¤Î Xi ¤òÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£ ÇÛÎó¤Î·Á¤Î°ú¿ô xsubi ¤Ë¸Ä¡¹¤Î Xi ¤ÎÃͤò ³ÊǼ¤Ç¤­¤ë¤è¤¦¤ÊÎΰè¤ò³ÎÊݤ¹¤ë¤³¤È¤ò¡¢ ´Ø¿ô erand48(), nrand48(), jrand48() ¤Ï¡¢ ¸Æ¤Ó½Ð¤·Â¦¤Î¥×¥í¥°¥é¥à¤ËÍ׵᤹¤ë¡£ ¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢¤Ï¤¸¤á¤Æ¤½¤ì¤é¤Î´Ø¿ô¤ò¸Æ¤ÖÁ°¤Ë Xi ¤Î½é´üÃͤòÇÛÎó¤Ë ÂåÆþ¤¹¤ë¤³¤È¤Ç½é´ü²½¤µ¤ì¤ë¡£

½é´ü²½´Ø¿ô srand48() ¤Ï¡¢Xi ¤Î ¾å°Ì32¥Ó¥Ã¥È¤ò°ú¿ô seedval ¤ËÀßÄꤹ¤ë¡£ ²¼°Ì¤Î16¥Ó¥Ã¥È¤Ï¡¢Å¬Åö¤Ë·è¤á¤é¤ì¤¿ÃͤǤ¢¤ë0x330E¤ËÀßÄꤵ¤ì¤ë¡£

½é´ü²½´Ø¿ô seed48() ¤Ï¡¢Xi ¤ÎÃͤò¡¢ ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤Ç¤¢¤ë seed16v ¤ÎÃæ¤Ç»ØÄꤵ¤ì¤¿ 48¥Ó¥Ã¥È¤ÎÃͤËÀßÄꤹ¤ë¡£ Xi ¤ÎÁ°¤ÎÃͤÏÆâÉô¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤µ¤ì¡¢¤³¤Î¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤¬ seed48() ¤Ë¤è¤Ã¤ÆÊÖ¤µ¤ì¤ë¡£

½é´ü²½´Ø¿ô lcong48() ¤Ï»ÈÍѼԤ¬ Xi, a, c ¤Î ½é´üÃͤò»ØÄꤹ¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£ ÇÛÎó¤Î·Á¤ò¤·¤¿°ú¿ô¤ÎÍ×ÁǤϤ½¤ì¤¾¤ì¡¢param[0-2] ¤Ï Xi ¤ò¡¢ param[3-5] ¤Ï a ¤ò¡¢param[6] ¤Ï c ¤ò»ØÄꤹ¤ë¤â¤Î ¤Ç¤¢¤ë¡£ lcong48() ¤¬¸Æ¤Ð¤ì¤¿¸å¤Ç¡¢ srand48() ¤« seed48() ¤ò¸Æ¤Ö¤È¡¢Á°½Ò¤Î a ¤È c ¤Î ɸ½àÃͤ¬ºÆ¤ÓÀßÄꤵ¤ì¤ë¡£

½àµò

SVr4, POSIX.1-2001.

Ãí°Õ

SVID 3 ¤Ç¤Ï¤³¤ì¤é¤Î´Ø¿ô¤Ï»þÂåÃÙ¤ì¤ÈÀë¸À¤µ¤ì¤Æ¤¤¤ë¡£ SVID 3 ¤Ç¤Ï rand(3) ¤¬Âå¤ï¤ê¤Ë»ÈÍѤµ¤ì¤ë¤Ù¤­¤À¤Èµ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£

´ØÏ¢»ö¹à

rand(3), random(3)