Rechercher une page de manuel
rand
Langue: ja
Version: 2003-11-15 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
rand, srand - Íð¿ô¤òÀ¸À®¤¹¤ë´Ø¿ô½ñ¼°
#include <stdlib.h> int rand(void); int rand_r(unsigned int *seedp); void srand(unsigned int seed);
ÀâÌÀ
rand() ´Ø¿ô¤Ï 0 ¤«¤é RAND_MAX ¤Î´Ö¤Îµ¿»÷Íð¿ôÀ°¿ô¤òÊÖ¤¹¡£srand() ´Ø¿ô¤Ï¡¢ rand() ´Ø¿ô¤Çºî¤é¤ì¤ëµ¿»÷Íð¿ôÀ°¿ô·ÏÎó¤Î¿·¤·¤¤¼ï¤È¤·¤Æ¡¢ ¤½¤Î°ú¤¿ô¤ÎÃͤò»ÈÍѤ¹¤ë¡£ ¤³¤ì¤é¤Î´Ø¿ô¤ò»ÈÍѤ·¤Æºî¤é¤ì¤¿µ¿»÷Íð¿ô·ÏÎó¤Ï¡¢ Ʊ¤¸Ãͤò°ú¤¿ô¤È¤·¤Æ srand() ¤ò¸Æ¤Ö¤³¤È¤Ç¡¢ ºÆ¸½¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¡£
¼ï¤ÎÃͤ¬Í¿¤¨¤é¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ rand() ´Ø¿ô¤Ï ¼«Æ°Åª¤Ë 1 ¤ò¼ï¤È¤¹¤ë¡£
rand() ´Ø¿ô¤ÏºÆÆþ²Äǽ (reentrant) ¤Ç¤Ï¤Ê¤¤¡¢¤Ä¤Þ¤ê¥¹¥ì¥Ã¥É¡¦¥»¡¼¥Õ¤Ç¤Ï¤Ê¤¤¡£ ¤Ê¤¼¤Ê¤é¡¢¤³¤Î´Ø¿ô¤Ï±£¤·¾õÂÖ¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅÙ¤ËÊѹ¹¤¹¤ë¤«¤é¤Ç¤¢¤ë¡£ ¤Á¤ç¤¦¤É¤³¤Î±£¤·¾õÂÖ¤¬¼¡¤Î¸Æ¤Ó½Ð¤·»þ¤ÎÍð¿ô¤Î¼ï¤È¤·¤Æ»È¤ï¤ì¤ë¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£ ¼ÂºÝ¤Ë¤Ï¤â¤¦¾¯¤·Ê£»¨¤«¤â¤·¤ì¤Ê¤¤¤¬¡£¥¹¥ì¥Ã¥É¤ò»ÈÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç ºÆ¸½²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤Î±£¤·¾õÂÖ¤¬¸¶°ø¤ÇºÆ¸½À¤¬¤Ê¤¯¤Ê¤ë¡£ rand_r() ´Ø¿ô¤Ï unsigned int ·¿¤ÎÊÑ¿ô¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¤¿ô¤Ë¤È¤ê¡¢ ¤³¤ÎÊÑ¿ô¤ò¾õÂÖ³ÊǼÍѤ˻ÈÍѤ¹¤ë¡£ ¾õÂÖ¿ô¤¬Èó¾ï¤Ë¾®¤µ¤¤¤Î¤Ç¡¢¤³¤Î´Ø¿ô¤Ï¤¢¤Þ¤ê¤è¤¤µ¼»÷Íð¿ôÀ¸À®´ï¤È¤Ï¸À¤¨¤Ê¤¤¤À¤í¤¦¡£ Âå¤ï¤ê¤Ë drand48_r(3) ¤ò»È¤¦¤È¤è¤¤¡£
ÊÖ¤êÃÍ
rand() ¤È rand_r() ´Ø¿ô¤Ï 0 ¤È RAND_MAX ¤Î´Ö¤Î¿ô¤òÊÖ¤¹¡£ srand() ´Ø¿ô¤ÏÃͤòÊÖ¤µ¤Ê¤¤¡£½àµò
´Ø¿ô rand() ¤È srand() ¤Ï SVr4, 4.3BSD, C89, C99, POSIX.1-2001 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£ ´Ø¿ô rand_r() ¤Ï POSIX.1-2001 ¤ËͳÍ褹¤ë¡£Ãí°Õ
rand() ¤È srand() ¤Î Linux C Library ÈǤϡ¢ random(3) ¤È srandom(3) ¤Îξ´Ø¿ô¤ÈƱ¤¸Íð¿ôÀ¸À® ¥¢¥ë¥´¥ê¥º¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£¤½¤Î¤¿¤á¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤Ï¾å°Ì¤Î¥Ó¥Ã¥È¤È Ʊ¤¸¤¯¤é¤¤¤Ë¥é¥ó¥À¥à¤Ç¤¢¤ë¡£ ¤·¤«¤·¡¢µìÈǤΠrand() ¤Î¼ÂÁõ¤ä¡¢Â¾¤Î¥·¥¹¥Æ¥à¤Î¸½ºß¤Î¼ÂÁõ¤Ç¤Ï¡¢²¼°Ì¤Î¥Ó¥Ã¥È¤¬¾å°Ì¤Î¥Ó¥Ã¥È¤Û¤É ¥é¥ó¥À¥à¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¡£°Ü¿¢À¤ò¹â¤á¤ë¾ì¹ç¤Ç¤â¡¢ÀºÅ٤ι⤤Íð¿ô¤¬É¬Í×¤Ê ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤Î´Ø¿ô¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1992 (2nd ed., p. 277)) ¤Ç¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥³¥á¥ó¥È¤¬¤Ê¤µ¤ì¤Æ¤¤¤ë¡£
- ¡Ö1 ¤È 10 ¤Î´Ö¤ÎÍð¿ô¤òÀ¸À®¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¾ï¤Ë
-
j = 1 + (int) (10.0 * rand() / (RAND_MAX + 1.0));
j = 1 + (rand() % 10);
Íð¿ô¤ÎÀ¸À®¤ÏÊ£»¨¤ÊÏÃÂê¤Ç¤¢¤ë¡£Á°½Ò¤Î Numerical Recipes in C ¤Ç¤Ï¼ÂÍÑŪ¤ÊÍð¿ôÀ¸À®¤òÏÀÅÀ¤È¤·¤¿Í¥¤ì¤¿µÄÏÀ¤¬Âè 7 ¾Ï (Íð¿ô) ¤ÇŸ³«¤µ¤ì¤Æ¤¤¤ë¡£
¤è¤êÍýÏÀŪ¤ÊµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï Donald E. Knuth ¤Î The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981 ¤ÎÂè 3 ¾Ï (Íð¿ô) ¤ò¸«¤è¡£¤³¤³¤Ç¤Ï¡¢ ¤¿¤¯¤µ¤ó¤Î¼ÂÍÑŪ¤ÊÏÃÂê¤Ë¤Ä¤¤¤Æ¤â¿¼¤¯ÌÖÍ夵¤ì¤Æ¤¤¤ë¡£
Îã
POSIX 1003.1-2003 ¤Ç¤Ï¡¢ rand() ¤È srand() ¤Î¼ÂÁõÎã¤È¤·¤Æ°Ê²¼¤òµó¤²¤Æ¤¤¤ë¡£¤³¤ì¤Ï¡¢°Û¤Ê¤ë£²¤Ä¤Î¥Þ¥·¥ó¤ÇƱ¤¸Íð¿ô·ÏÎó¤¬ É¬Íפʾì¹ç¤Ë¤ÏÊØÍø¤Ç¤¢¤í¤¦¡£static unsigned long next = 1; /* RAND_MAX ¤ò 32767 ¤È²¾Äê */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); } void mysrand(unsigned seed) { next = seed; }
´ØÏ¢¹àÌÜ
drand48(3), random(3)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre