Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

shufrans(3M)

Name

shufrans - 随机数置乱器

Synopsis

cc [ flag ... ] file ...  -lsunmath -lm [ library ... ]
#include <sunmath.h>
void i_shufrans_(int *x, int *n, int *l, int *u);
void  u_shufrans_(unsigned *x, int *n, unsigned *l, unsigned*u);
void r_shufrans_(float *x, int *n, float *l, float *u);
void d_shufrans_(double *x, int *n, double *l, double *u);

Description

这些函数将随机数 x[0]、...、x[*n-1] 置乱到位。这些数可以由任何方法生成,但假定为在间隔 [*l,*u] 上均匀分布。(如果有任何数位于此间隔之外,则结果无法确定。)

这些例程使用 Knuth 所说的“算法 B”方法。它们使用一个内部表,该表包含 4 到 256 个元素,具体由 *n 确定。

Examples

要置乱 1000 个 [lb, ub] 范围内的双精度随机数:

 
double x[1000], lb, ub;
int n = 1000;

d_shufrans_(x, &n, &lb, &ub);

Attributes

有关下列属性的说明,请参见 attributes(5):

属性类型
属性值
接口稳定性
Committed(已确定)
MT 级别
MT-Safe(MT 安全)

See also

addrans(3M)、drand48(3C)、lcrans(3M)、mwcrans(3M)、rand(3C)、random(3C)、attributes(5)

Knuth 编著的《Seminumerical Algorithms》,Addison-Wesley 出版,1981。

Park 和 Miller 合著的《Random Number Generators: Good Ones are Hard to Find》,Communications of the ACM 出版,1988 年 10 月。