【发布时间】:2019-08-08 18:43:32
【问题描述】:
有没有其他方法可以得到高斯分布的随机数,或者今天有没有这方面的库?
我看到了关于Gaussian distributed random numbers in OpenCL的问题
我想在 OpenCL 中生成许多高斯分布的随机数,就像上面的 url 问题。
它可以通过两步来做到这一点:
http://cas.ee.ic.ac.uk/people/dt10/research/rngs-gpu-mwc64x.html#source_code 它可能会生成许多随机均匀数,而不是高斯分布的随机数。
然后我可以使用https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform 将均匀随机变量转换为正态分布变量。
这可能很耗时,所以有没有其他方法可以得到高斯分布的随机数(最好使用内核生成一个数组随机数,如 cuda 函数:curandGenerateNormal(....))或者有没有今天的图书馆?
【问题讨论】:
-
@Someprogrammerdude,对不起,我下次会做得更好。
-
@Someprogrammerdude 我认为这个问题是有效的,如果你不这么认为,也许你可以提出改进它的方法。 (不过我会删除 c 和 c++ 标记,它们不太合适。)
-
明确要求库或其他外部资源是题外话。这不是免费的编码服务,我们很乐意为现有代码提供帮助,但我们不是来从头开始编写代码的。
-
@Someprogrammerdude,对不起,有些算法可能用简单的语言表达不清楚。我的意思是在其他现有程序中是否还有其他一些高斯分布随机函数(如github.com/ddemidov/vexcl),所以我可以分析它的算法以改进正态分布函数。我认为这个问题可以帮助一些人知道如何提高效率用于在opencl中生成高斯分布的随机数。