set.seed()作用

Python011

set.seed()作用,第1张

R语言中set.seed()作用是设定生成随机数种子,种子是为了让结果具有重复性,重现结果。如果不设定种子,生成的随机数无法重现。

后两次在设定了相同的种子前提下,生成的随机数是相同的。

说明,来源于网络

计算机并不能产生真正的随机数,如果你不设种子,计算机会用系统时钟来作为种子,如果你要模拟什么的话,每次的随机数都是不一样的,这样就不方便你研究,如果你事先设置了种子,这样每次的随机数都是一样的,便于重现你的研究,也便于其他人检验你的分析结果。

set.seed(3000),不是运行3000次,而是把种子设置为3000。

计算机的程序,都是通过确定的算法,根据确定的输入,算出确定的输出。想要得到真正的随机,需要通过外接物理随机数发生器,通过把随机的物理过程转变为随机值,才能实现。因此我们平常使用的计算机的随机数,其实都只是通过算法模拟得到,也就是伪随机。一般采用的办法是线性同余:

为简单起见,我取简单的参数(a = 1, c = 3, m = 5),得到一个简单的算式:

这时,把X[0]视为种子,于是:

对于每个种子,所得到的数列看起来都是随机的(每个数值出现的频率都是相同的)。而一旦种子给定,每次调用随机数函数,函数都会根据上次得到的数列的某个值,计算出数列的下一个值并返回回来。而对于随机浮点数,一般是用随机产生的整数除以最大整数得到。

所以,随机数的种子一般只需要在调用随机函数之前设置一次,不建议设置多次。

给定一个正整数m,如果二整数α、b)满足m│α-b)(α-b)被m整除),就称整数α、b)对模m同余,记作α呏b)(mod m)。对模m同余是整数的一个等价关系。

两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余

记作a ≡ b (mod m)

读作a同余于b模m,或读作a与b关于模m同余。

比如 26 ≡ 14 (mod 12)

【定义】设m是大于1的正整数,a,b是整数,如果m|(a-b),则称a与b关于模m同余,记作a≡b(mod m),读作a与b对模m同余.

显然,有如下事实

(1)若a≡0(mod m),则m|a

(2)a≡b(mod m)等价于a与b分别用m去除,余数相同.

【证明】 充分性:设a=mq1+r1,b=mq2+r2,0<=r1,r2<m

∵ m|(a-b),a-b=m(q1-q2)+(r1-r2).

则有m|(r1-r2).

∵0<=r1,r2<m,∴0<=|r1-r2|<m,

即r1-r2=0,∴r1=r2.

必要性:设a,b用m去除余数为r,即a=mq1+r,b=mq2+r,

a-b=m(q1-q2) ∴m|(a-b),

故a≡b(mod m).

编辑本段性质1 反身性 a ≡ a (mod m)

2 对称性 若a ≡ b(mod m) 则b ≡ a (mod m)

3 传递性 若a ≡ b (mod m),b ≡ c (mod m),则a ≡ c (mod m)

4 同余式相加若a ≡ b (mod m),c≡d(mod m),则a+-c≡b+-d(mod m)

5 同余式相乘 若a ≡ b (mod m),c≡d(mod m),则ac≡bd(mod m)

【证明】上述性质很容易证明,下面仅证明(3).

∵a≡b(mod m)∴m|(a-b) 同理m|(b-c),

∴m|[(a-b)+(b-c)]∴m|(a-c).

故a≡c(mod m).

4 线性运算如果a ≡ b (mod m),c ≡ d (mod m),那么(1)a ± c ≡ b ± d (mod m),(2)a * c ≡ b * d (mod m)

【证明】(1)∵a≡b(mod m),∴m|(a-b) 同理 m|(c-d)

∴m|[(a-b)±(c-d)] ∴m|[(a±c)-(b±d)]

∴a ± c ≡ b ± d (mod m)

(2)∵ac-bd=ac-bc+bc-bd=c(a-b)+b(c-d)

又 m|(a-b) , m|(c-d) ∴m|(ac-bd)

∴a * c ≡ b * d (mod m)

5 除法若ac ≡ bc (mod m) c!=0 则 a≡ b (mod m/(c,m)) 其中(c,m)表示c,m的最大公约数

特殊地 (c,m)=1 则a ≡ b (mod m)

6 乘方如果a ≡ b (mod m),那么a^n ≡ b^n (mod m)

7 若a ≡ b (mod m),n|m,则 a ≡ b (mod n)

8 若a ≡ b (mod mi) i=1,2...n 则 a ≡ b (mod [m1,m2,...mn]) 其中[m1,m2,...mn]表示m1,m2,...mn的最小公倍数

9 欧拉定理

设a,m∈N,(a,m)=1,则a^(φ(m))≡1(mod m)

(注:φ(m)指模m的简系个数, φ(m)=m-1, 如果m是素数;φ(m=q1^r1 * q2^r2 * ...*qi^ri)=m (1-1/q1)(1-1/q2)...(1-1/qi))