标签: exponential-distribution

伪随机数发生器 - 指数分布

我想生成一些伪随机数,直到现在我一直非常满意.Net库的Random.Next(int min, int max)功能.这个品种的PRNG 应该使用Uniform分布,但我非常希望使用指数分布生成一些数字.

我正在用C#编程,虽然我会接受伪代码或C++,Java等.

任何建议/代码片段/算法/想法?

language-agnostic random algorithm exponential-distribution

57
推荐指数
4
解决办法
7万
查看次数

如何生成具有指数分布的随机数(带均值)?

我试图生成指数分布的随机数,均值等于1.我知道如何得到正态分布的随机数,具有均值和标准差.我们可以得到它normal(mean, standard_deviation),但我不知道如何获得指数分布的随机数.

谁能帮我这个?

c++ exponential-distribution

11
推荐指数
2
解决办法
2万
查看次数

Python中的指数分布

从Python中的指数分布中抽取随机数的最简单方法是什么?

python exponential-distribution

9
推荐指数
1
解决办法
1万
查看次数

随机数生成器,为Java生成整数

我想在Java中生成一些随机整数,但这根据一些分布规律.更加具体:

  • 我想为高斯分布生成一些随机整数.我发现只有发生器才能返回高斯分布的双重结果.这是为什么?

  • 我想在指数分布的某些限制之间生成一些随机整数?在这里,我也发现只有返回双倍的发电机.我也没有找到一种方法只在两个限制之间生成一些随机指数数字.

你能帮助我吗?你知道一个可以做我想做的图书馆吗?我研究了Michael Flanagan的图书馆,小马和阿帕奇的Commons Math,但他们没有我需要的东西.

谢谢!

java random integer gaussian exponential-distribution

5
推荐指数
1
解决办法
2071
查看次数

如何在R的直方图上绘制尖峰时间的指数分布?

所以我的问题跟随我上一次的发展.我一直在尝试将尖峰时间作为尖峰列车的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)

plot r histogram neuroscience exponential-distribution

5
推荐指数
1
解决办法
309
查看次数

是否有记录的方法来重置现有std :: exponential_distribution对象上的lambda参数?

当我查看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)

是否有记录的方法来执行此操作,如果没有,是否可以安全使用这两种解决方案?

c++ exponential-distribution c++11

2
推荐指数
1
解决办法
75
查看次数