Sup*_*est 10 c# random statistics probability perlin-noise
我的Perlin噪声函数(在0.75持续时间内将3D单形的6个八度音阶加起来)生成一个doubles 的2D数组.
这些数字各自归一化为[-1,1],均值为0.我钳制它们以避免异常,我认为这是由于浮点精度问题,但我相当确定我的缩放因子足够好在理想情况下,将噪声输出限制在这个邻域.
无论如何,这都是细节.关键是,这是一个256乘256的噪音阵列:

具有正常拟合的直方图如下所示:

Matlab lillietest是一个函数,它应用Lilliefors测试来确定一组数字是否来自正态分布.我的结果反复是1,这意味着这些数字不是正态分布的.
我想要一个函数f(x),当应用于我的噪声函数的值列表时,结果看起来是均匀分布的.
我希望这个函数可以在C#中实现,而不需要花费几分钟来运行.
再一次,数字的来源无关紧要(问题在于将一个分布转换为另一个分布,特别是正常的分布到均匀分布).不过,我的噪音功能实现基于此和此.您可以在此处找到上述值数组.
奇怪的是,我刚刚在你的问题上写了一篇文章:
http://ericlippert.com/2012/02/21/generating-random-non-uniform-data/
在那里,我将讨论如何将统一分布转换为其他分布,但当然您可以使用类似的技术来转换其他分布.