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生成的均匀分布,也是大家一般都想要的。你还可以生成其他分部类型的随机数,比如正态分布等,你可以上网查。。。上面这些也是我自己查的。。