一个好的随机数发生器对C(A good random number generator for C)

2019-07-19 23:14发布

我需要一个程序,我在写C.这是一个分形火焰发生器,如果你有兴趣了良好的随机数发生器。 我的图片中走出来很粗糙,即使我与过去相同的算法成功。 所不同的,我终于明白,是我用的是随机数发生器。 令人难以置信的是,它使一个巨大的差异。 我希望一个更好的随机数生成器可能会产生更好的效果。 答案可能来,在代码示例或到预先存在的随机数库链接的形式。 最重要的要求:

  • 它应该产生的随机数的相对高品质的流
  • 其期限必须超过一十亿
  • 它应该是足够快的速度,并提供良好的性能权衡。

Answer 1:

这似乎是一个不错的用例的梅森倍捻机

  • 它比兰特的大多数标准实现更快的()
  • 它有一个很长的(2 ^ 19937 - 1)周期
  • 它有一个相当高的品质 - 它通过最规范的随机性测试
  • 这是公共领域


Answer 2:

如果你正在寻找一个非常快的,质量过得去的算法,你应该想想xorshift128+xorshift1024* 。 他们几乎一样快的LCG(根据我的比较它们不是简单的直列液冷服慢了30%),具有更好的质量比LCG同一时间。

你可以在这里找到自己的代码和比较: http://xorshift.di.unimi.it/



文章来源: A good random number generator for C
标签: c random