小编Dam*_*ien的帖子

生成指数分布的随机数

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double ran_expo(lambda){
    double u;

    u = rand() / (RAND_MAX + 1.0);

    return -log(1- u) / lambda;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用它(我没有在这里放置代码的其他部分)来生成指数分布的随机数lambda = 0.05.(概率密度函数是lambda * exp(-lambda * x)).

但是,我总是得到非常小的数字,例如 0.000041,或类似的东西1.#INF00(这是什么?).

实际上,对于指数分布lambda = 0.05,生成的数字应该非常大,即大多数都不是30.我的结果非常奇怪.另外,精度不尽如人意,仅为10 ^( - 6).我试过了long double,但它仍然是这样的.

我在windows下使用DEV C++.

c

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

令人困惑的python无效语法错误

这是随机模拟的一部分:

elif (D(dist(x, y, z)) > Dp): ### if passing to a region with lower diffusion constant
            rcross = np.sqrt(Dp/D(dist(x, y, z)))
            rd_nb = rd.uniform(0,1)
            if (Dp == 0.001): # in this case, the particle must be reflected
                s = para(x, y, z, R, dx, dy, dz)
                xc = x + s*dx
                yc = y + s*dy
                zc = z + s*dz

            x = 2*xc - xp
            y = 2*yc - yp           
            z = 2*zc - zp
            # position.append(x)
            t …
Run Code Online (Sandbox Code Playgroud)

python

-1
推荐指数
1
解决办法
168
查看次数

标签 统计

c ×1

python ×1