怎么用R语言生成0-1之间的随机数?

Python015

怎么用R语言生成0-1之间的随机数?,第1张

1、第一步,调用runif()函数,这时函数内的值为6,生成6个随机数,如下图所示

2、第二步,再次调用runif()函数,runif(6)又生成6个随机数,如下图所示:

3、第三步,使用set.seed(12345)设置种子元素,然后调用runif(6),查看数据情况,如下图所示:

4、第四步,再次调用set.seed()函数,这时多加了一个6,如下图所示:

5、第五步,再次调用runif(6)函数,查看生成的6个随机数的不同,如下图所示:

6、第六步,再次调用set.seed()函数,这时是从1到9;然后调用runif()函数,如下图所示:

truncate是什么意思? 我理解为只取那些取值在2 3之间的随机数

方法一:

反函数法

temp<-rep(0,1000) #temp是长度1000的数组

i<-1

while (i<=1000)

{

a<-runif(1) #生成0 1之间的均匀分布的随机数

b<-log(1-a)/(-2) #转为满足指数分布的随机数

if ((b<=3)&(b>2))

{

temp[i]<-b

i=i+1

}

}

方法二:

舍选法

temp<-rep(0,1000) #temp是长度1000的数组

i<-1

while (i<=1000)

{

a<-runif(1) #生成0 1之间的均匀分布的随机数

b<-runif(1,min=0,max=10)

#生成0 10之间的均匀分布的随机数

if ((exp(-2*b)>=a)&(b<=3)&(b>2))

{

temp[i]<-b

i=i+1

}

}

你这个的问题其实就是R语言的在某个范围内的随机取值问题,你这个比较特殊,直接用runif(1)就行,代表从【0,1】随机取出一个数。如果你要得到【2,10】之间的的5个数就用runif(5,2,10)。当然这个runif生成的均匀分布,也是大家一般都想要的。你还可以生成其他分部类型的随机数,比如正态分布等,你可以上网查。。。上面这些也是我自己查的。。