如何在c#中获得受控随机数

vak*_*kas 3 c# random

我想生成随机数但受控制,这意味着数字应该几乎相等,并在范围内传播.

例如,如果边界是1和50,那么如果第一个生成的数字是40,则下一个数字不应该接近.假设它是20,那么30将是可接受的第三个数字.

请帮忙.

ste*_*hbu 5

您可能希望查看像Perlin Noise这样的噪声函数,以可预测的方式生成表面随机数据,而不是完全随机的数字.

http://en.wikipedia.org/wiki/Perlin_noise

有一些变化 - 如果你能用算法描述你的数据分割,绝对值得研究.

它在游戏中用得很多,以平滑并增加对随机生成的地形纹理的兴趣.

C#中有一些示例实现,这个实现用于生成位图,但可以很容易地适应填充二维数组:

http://www.gutgames.com/post/Perlin-Noise.aspx

关于Perlin Noise的问题也有很多问题:

https://stackoverflow.com/search?q=perlin+noise