我试图生成指数分布的随机数,均值等于1.我知道如何得到正态分布的随机数,具有均值和标准差.我们可以得到它normal(mean, standard_deviation)
,但我不知道如何获得指数分布的随机数.
谁能帮我这个?
我想在Java中生成一些随机整数,但这根据一些分布规律.更加具体:
我想为高斯分布生成一些随机整数.我发现只有发生器才能返回高斯分布的双重结果.这是为什么?
我想在指数分布的某些限制之间生成一些随机整数?在这里,我也发现只有返回双倍的发电机.我也没有找到一种方法只在两个限制之间生成一些随机指数数字.
你能帮助我吗?你知道一个可以做我想做的图书馆吗?我研究了Michael Flanagan的图书馆,小马和阿帕奇的Commons Math,但他们没有我需要的东西.
谢谢!
所以我的问题跟随我上一次的发展.我一直在尝试将尖峰时间作为尖峰列车的rastor情节.我的射击率为100,并获得20次试验的加速训练:代码为:
fr = 100
dt = 1/1000 #dt in milisecond
duration = 2 #no of duration in s
nBins = 2000 #SpikeTrain
nTrials = 20 #NumberOfSimulations
MyPoissonSpikeTrain = function(p, fr= 100) {
p = runif(nBins)
q = ifelse(p < fr*dt, 1, 0)
return(q)
}
set.seed(1)
SpikeMat <- t(replicate(nTrials, MyPoissonSpikeTrain()))
plot(x=-1,y=-1, xlab="time (s)", ylab="Trial",
main="Spike trains",
ylim=c(0.5, nTrials+1), xlim=c(0, duration))
for (i in 1: nTrials)
{
clip(x1 = 0, x2= duration, y1= (i-0.2), y2= (i+0.4))
abline(h=i, lwd= 1/4)
abline(v= dt*which( SpikeMat[i,]== …
Run Code Online (Sandbox Code Playgroud) 当我查看std :: exponential_distribution的文档时,它似乎没有公开在运行时更改lambda参数的标准方法.
有一个param
方法,但它采用opaque成员类型param_type
,获取此类对象的唯一记录方法是param
不带参数调用,但这意味着必须首先使用该参数创建不同的实例.
下面,我展示了两种未记录的重置lambda的方法,但是我不知道它们是否会在运行时产生正确的行为.
#include <random>
#include <new>
int main(){
std::random_device rd;
std::mt19937 gen(rd());
std::exponential_distribution<double> intervalGenerator(5);
// How do we change lambda after creation?
// Construct a param_type using an undocumented constructor?
intervalGenerator.param(std::exponential_distribution<double>::param_type(7));
// Destroy and recreate the distribution?
intervalGenerator.~exponential_distribution();
new (&intervalGenerator) std::exponential_distribution<double>(9);
}
Run Code Online (Sandbox Code Playgroud)
是否有记录的方法来执行此操作,如果没有,是否可以安全使用这两种解决方案?