什么是整数,而设置的种子是什么意思?(What does the integer while set

2019-07-19 05:32发布

我想随机从我的数据使用所设定的选择n行sample()中的R的功能。 每个时间和因此使用我得到不同的输出set.seed()函数来得到相同的输出。 我知道,在每一个整数set.seed()会给我一个独特的输出,如果设置相同的种子输出将是相同的。 但我不能够做的是,作为一个参数传递的是整数什么set.seed()函数表示。 难道只是进入随机生成算法还是意味着从你开始采样数据的某些部分的指标? 例如,什么是2set.seed(2)是什么意思?

Answer 1:

随机种子(或种子状态,或者只是种子)是用于初始化的伪随机数发生器产生一个号码(或向量)。

对于在一个伪随机数发生器使用的种子,它并不需要是随机的。 由于数生成算法的性质,因此只要原始种子被忽略,该值的,该算法产生的其余部分将遵循以伪随机方式概率分布。

- 维基百科

因此,随机函数可以实现这样的:

int rand_r(unsigned int *seed)
{
    *seed = *seed * 1103515245 + 12345;
    return (*seed % ((unsigned int)RAND_MAX + 1));
}

(从glibc的取样品)



Answer 2:

在过去,有包含书页和随机数字的网页 (当然在随机顺序)。

我喜欢把set.seed(x)为告诉计算机开始读取从页的随机数x在一个巨大的随机数的书。 x无关的数据,但如何的算法来选择随机数应该开始。

这可能是有点浅显的,但我喜欢这个比喻。



Answer 3:

这仅仅是用于设置随机数生成种子的数字。 它无关,与你的数据。 如果你没有明确提供种子,一个新的从当前时间创建。

?set.seed对于很多关于它的详细信息,帮助页面。



文章来源: What does the integer while setting the seed mean?