随机数,可能是区间的一部分,在R中呈指数分布
我遇到了一个问题,我需要生成一个随机数,它可能是指数分布区间的一部分,但我不知道如何在编程语言R中实现这一点 我想模拟放射性衰变。所以如果我们有一个给定的时间窗口,它是一个间隔(a,b),原子的衰变时间x是(a,b)的一部分,我想在原子衰变时增加一个计数器 那么,例如,100个原子,如果每个原子都有自己的衰变时间,那么在某个时间窗口后,有多少原子衰变了 我现在的问题是:如何得到一个随机数,这样这个数就可以是时间窗口的一部分,但不必是随机数 到目前为止,我的代码是:随机数,可能是区间的一部分,在R中呈指数分布,r,statistics,distribution,exponential,R,Statistics,Distribution,Exponential,我遇到了一个问题,我需要生成一个随机数,它可能是指数分布区间的一部分,但我不知道如何在编程语言R中实现这一点 我想模拟放射性衰变。所以如果我们有一个给定的时间窗口,它是一个间隔(a,b),原子的衰变时间x是(a,b)的一部分,我想在原子衰变时增加一个计数器 那么,例如,100个原子,如果每个原子都有自己的衰变时间,那么在某个时间窗口后,有多少原子衰变了 我现在的问题是:如何得到一个随机数,这样这个数就可以是时间窗口的一部分,但不必是随机数 到目前为止,我的代码是: #indicator func
#indicator function returns 1 if ti is part of the intervall otherwise 0
indicator<-function(timewindow,decaytime) {
if(0 < decaytime || decaytime <= timewindow){
return(1)
}else{
return(0)
}
}
#ti should return the random number that could be part of the intervall HERE IS THE PROBLEM probably
getRandom<- function(p){
number<- rexp(1, rate=p)
return(number)
}
decay <- function(N,p,timewindow) {
print(sum(replicate(N, indicator(timewindow,getRandom(p)))))
}
N<-100 #number of atoms
timewindow<-7.5 #time window (0 to 7.5]
p<-3.8/N #rate (lambda)
decay(N,p,t)
#如果ti是间隔的一部分,则indicator函数返回1,否则返回0
相同命名函数/变量(ti
,t
)之间的指示符,ti(p,t)
中未使用的参数(t
),还有描述,我很难理解你想做什么。有什么原因你不能只使用decaytimes对不起,我编辑了代码。所以问题是,每个原子的衰变时间是相互独立的。因此,每个原子都有自己的衰变时间,它是指数分布的。所以我的问题是,h我怎样才能得到一个在时间窗口中具有一定概率部分的数字,这样原子就可以算作衰变了?哦,天哪,我想我发现了我的错误。它在这里:如果(0rexp(N,rate=p)
给出了100个独立的随机数。例如,set.seed(2);rexp(3);
给出了1.86、0.40和0.15(四舍五入),这似乎集中在1的速率附近。一旦有了衰减时间向量,只需对相同命名函数/变量(ti
,t
)之间的decaytimesti(p,t)
)中未使用的参数(t
),还有描述,我很难理解你想做什么。有什么原因你不能只使用decaytimes对不起,我编辑了代码。所以问题是,每个原子的衰变时间是相互独立的。因此,每个原子都有自己的衰变时间,它是指数分布的。所以我的问题是,h我怎样才能得到一个在时间窗口中具有一定概率部分的数字,这样原子就可以算作衰变了?哦,天哪,我想我发现了我的错误。它在这里:如果(0rexp(N,rate=p)
给出了100个独立的随机数。例如,set.seed(2);rexp(3);
给出了1.86、0.40和0.15(四舍五入),这三者似乎集中在1的速率附近。一旦有了衰减时间的向量,只需对decaytimes