相关疑难解决方法(0)

获得总和为M的N个随机数

我想得到N个随机数,它们的总和是一个值.

例如,假设我想要5个随机数,它们的和为1

那么,一个有效的可能性是:

0.2 0.2 0.2 0.2 0.2
Run Code Online (Sandbox Code Playgroud)

其他可能性是:

0.8 0.1 0.03 0.03 0.04
Run Code Online (Sandbox Code Playgroud)

等等.我需要这个来创建模糊C均值的所有物矩阵.

language-agnostic random sum

40
推荐指数
4
解决办法
3万
查看次数

在球形体积内采样均匀分布的随机点

我希望能够生成一个随机均匀的粒子位置样本,该样本落在球形体积内.

下图(http://nojhan.free.fr/metah/提供)显示了我要找的内容.这是穿过球体的切片,显示了点的均匀分布:

均匀分布的圆圈

这就是我目前得到的:

均匀分布但是聚类点

由于球面和笛卡尔坐标之间的转换,您可以看到中心有一组点.

我使用的代码是:

def new_positions_spherical_coordinates(self):
   radius = numpy.random.uniform(0.0,1.0, (self.number_of_particles,1)) 
   theta = numpy.random.uniform(0.,1.,(self.number_of_particles,1))*pi
   phi = numpy.arccos(1-2*numpy.random.uniform(0.0,1.,(self.number_of_particles,1)))
   x = radius * numpy.sin( theta ) * numpy.cos( phi )
   y = radius * numpy.sin( theta ) * numpy.sin( phi )
   z = radius * numpy.cos( theta )
   return (x,y,z)
Run Code Online (Sandbox Code Playgroud)

下面是一些MATLAB代码,据说可以创建一个统一的球形样本,类似于http://nojhan.free.fr/metah给出的等式.我似乎无法破译它或理解他们做了什么.

function X = randsphere(m,n,r)

% This function returns an m by n array, X, in which 
% each of the m rows has the n Cartesian coordinates …
Run Code Online (Sandbox Code Playgroud)

python random matlab geometry uniform-distribution

36
推荐指数
3
解决办法
4万
查看次数

随机数发生器产生幂律分布?

我正在为C++命令行Linux应用程序编写一些测试.我想生成一堆具有幂律/长尾分布的整数.意思是,我经常得到一些数字,但大多数都是相对不频繁的.

理想情况下,我可以使用rand()或其中一个stdlib随机函数.如果没有,一个易于使用的C/C++块将是伟大的.

谢谢!

c++ random math power-law

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

根据分布生成随机数

我想根据一些发行版生成随机数.我怎样才能做到这一点?

random distribution

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

如何生成具有泊松分布的离散随机事件?

我知道Knuth用于生成随机泊松分布数的算法(在Java下面)但是我如何将其转换为generateEvent()随机调用方法?

int poissonRandomNumber(int lambda) {
    double L = Math.exp(-lambda);
    int k = 0;
    double p = 1;
    do {
        k = k + 1;
        double u = Math.random();
        p = p * u;
    } while (p > L);
    return k - 1;
}
Run Code Online (Sandbox Code Playgroud)

java simulation events poisson

8
推荐指数
1
解决办法
9016
查看次数

在c ++中生成泊松变量

我实现了这个函数来生成一个泊松随机变量

typedef long unsigned int luint;
luint poisson(luint lambda) {
    double L = exp(-double(lambda));
    luint k = 0;
    double p = 1;
    do {
        k++;
        p *= mrand.rand();
    } while( p > L);
    return (k-1);
}
Run Code Online (Sandbox Code Playgroud)

其中mrand是MersenneTwister随机数生成器.我发现,当我增加lambda时,预期的分布将是错误的,其平均值在750左右饱和.是由于数值近似还是我犯了什么错误?

c++ knuth probability poisson

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

使用(负)指数分布生成 0 到 1 之间的随机数

嘿嘿,

我正在尝试使用指数/负指数分布生成 0.0 和 1.0 之间的随机数。有一篇文章,它告诉你必须得到“分位数函数”。但是结果还是大于1.0。所以我需要以某种方式缩放我的方程。

我的目标是在一个范围内生成一个随机数,例如更高/更低的值具有更高的概率。(分布应该是可扩展的)

相关问题(不要将结果截断为 [0,1]):

java random probability

4
推荐指数
1
解决办法
4286
查看次数

JAVA - 指数分布

我需要找到概率指数分布的公式,但我不知道如何找到它:(这个公式必须具有强大的统计属性(它不能丢弃随机的任何结果,以保持随机实例的不受限制的搜索)

我试图找到公式,这将在这样的方法中工作:

rand.getNextDuobleExpDistrib();
Run Code Online (Sandbox Code Playgroud)

我现在有这个代码,但根据"输入分析器",它无法正常工作

public double getNext() {
        return -lampda * Math.log(rand.nextDouble());
 }
Run Code Online (Sandbox Code Playgroud)

java random math exponential

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