找回密码
 注册
查看: 2468|回复: 0

R语言:Random-user()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-2-16 21:59:07 | 显示全部楼层 |阅读模式
Random-user(base)
Random-user()所属R语言包:base

                                        User-supplied Random Number Generation
                                         用户提供的随机数生成

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Function RNGkind allows user-coded uniform and normal random number generators to be supplied.  The details are given here.
允许用户编码的统一和正常的随机数生成器提供的功能RNGkind。这里给出的细节。


Details

详情----------Details----------

A user-specified uniform RNG is called from entry points in dynamically-loaded compiled code.  The user must supply the entry point user_unif_rand, which takes no arguments and returns a pointer to a double. The example below will show the general pattern.
用户指定的统一的RNG被称为动态加载编译的代码的入口点。用户必须提供的切入点user_unif_rand,这不带任何参数,并返回一个指针双。下面的例子将显示的一般模式。

Optionally, the user can supply the entry point user_unif_init, which is called with an unsigned int argument when RNGkind (or set.seed) is called, and is intended to be used to initialize the user's RNG code.  The argument is intended to be used to set the "seeds"; it is the seed argument to set.seed or an essentially random seed if RNGkind is called.
可选,用户可以提供切入点user_unif_initunsigned int参数,这是称为RNGkind(或set.seed)被调用,并拟用于初始化用户的RNG的代码。该参数的目的是用来设置的种子,它是seed如果被称为set.seedRNGkind或基本上是随机的种子参数。

If only these functions are supplied, no information about the generator's state is recorded in .Random.seed.  Optionally, functions user_unif_nseed and user_unif_seedloc can be supplied which are called with no arguments and should return pointers to the number of seeds and to an integer (specifically, Int32) array of seeds.  Calls to GetRNGstate and PutRNGstate will then copy this array to and from .Random.seed.
如果只提供这些功能,没有发电机的状态信息将被记录在.Random.seed。可选,功能user_unif_nseed和user_unif_seedloc可提供不带任何参数,被称为种子数量和整数(特别是Int32)阵列种子应该返回的指针。调用GetRNGstate和PutRNGstate然后将复制这个数组,并从.Random.seed。

A user-specified normal RNG is specified by a single entry point user_norm_rand, which takes no arguments and returns a pointer to a double.
指定由一个单一的入口点user_norm_rand,其中不带任何参数,并返回一个指针双用户指定的正常的RNG。


警告----------Warning----------

As with all compiled code, mis-specifying these functions can crash R.  Do include the "R_ext/Random.h" header file for type checking.
与所有编译的代码,错误指定这些功能可以崩溃河包括“R_ext/Random.h头文件类型检查。


举例----------Examples----------


##  Marsaglia's congruential PRNG[#马尔萨利亚的同余的PRNG]
#include &lt;R_ext/Random.h&gt;[包括<R_ext/Random.h>]

static Int32 seed;
static double res;
static int nseed = 1;

double * user_unif_rand()
{
    seed = 69069 * seed + 1;
    res = seed * 2.32830643653869e-10;
    return &amp;res;
}

void  user_unif_init(Int32 seed_in) { seed = seed_in; }
int * user_unif_nseed() { return &amp;nseed; }
int * user_unif_seedloc() { return (int *) &amp;seed; }

/*  ratio-of-uniforms for normal  */
#include &lt;math.h&gt;[包括<math.h>中]
static double x;

double * user_norm_rand()
{
    double u, v, z;
    do {
        u = unif_rand();
        v = 0.857764 * (2. * unif_rand() - 1);
        x = v/u; z = 0.25 * x * x;
        if (z < 1. - u) break;
        if (z > 0.259/u + 0.35) continue;
    } while (z > -log(u));
    return &amp;x;
}

## Use under Unix:[#在Unix下使用:]
R CMD SHLIB urand.c
R
> dyn.load("urand.so")
> RNGkind("user")
> runif(10)
> .Random.seed
> RNGkind(, "user")
> rnorm(10)
> RNGkind()
[1] "user-supplied" "user-supplied"


转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-23 10:24 , Processed in 0.030139 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表