Man page - nrand48(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ja ro

Manual

DRAND48

名 前
書 åŧ
čĒŦ 明
åąž 性
æē– 拠
é–ĸ 逪 項 į›Ž
こ ぎ 文 書 ãĢ つ い ãĻ

名 前

drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - 一 様 分 布 す る į–‘ äŧŧ äšą 数 を į”Ÿ 成 す る é–ĸ 数

書 åŧ

#include <stdlib.h>

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) 参 į…§ ):

All functions shown above: _XOPEN_SOURCE
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 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,

こ こ で 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 ぎ 標 æē– 値 が 再 ãŗ 設 厚 さ れ る 。

åąž 性

こ ぎ ᝀ で äŊŋ ᔍ さ れ ãĻ い る ᔍ čĒž ぎ čĒŦ 明 ãĢ つ い ãĻ は 、 attributes (7) を 参 į…§ 。

Image grohtml-23558-1.png

上 記 ぎ é–ĸ 数 は 、 äšą 数 į”Ÿ 成 ãĢ äŊŋ ᔍ す る įŠļ 態 情 å ą を グ ロ ãƒŧ バ ãƒĢ ãĢ äŋ 持 す る 。 そ ぎ た め 、 こ れ ら ぎ é–ĸ 数 は ゚ ãƒŦ ッ ド ã‚ģ ãƒŧ フ で は ãĒ い 。

æē– 拠

POSIX.1-2001, POSIX.1-2008, SVr4.

é–ĸ 逪 項 į›Ž

rand (3), random (3)

こ ぎ 文 書 ãĢ つ い ãĻ

こ ぎ man ペ ãƒŧ ジ は Linux man-pages プ ロ ジ ェ ク ト ぎ ãƒĒ ãƒĒ ãƒŧ ゚ 5.10 ぎ 一 部 で あ る 。 プ ロ ジ ェ ク ト ぎ čĒŦ 明 と バ グ å ą 告 ãĢ é–ĸ す る 情 å ą は https://www.kernel.org/doc/man-pages/ ãĢ 書 か れ ãĻ い る 。