首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个很好的C随机数发生器

一个很好的C随机数发生器
EN

Stack Overflow用户
提问于 2013-02-15 08:36:40
回答 2查看 11.1K关注 0票数 10

我需要一个很好的随机数发生器来编写我用C编写的程序,如果你感兴趣的话,它是一个分形火焰发生器。我的图像非常粒状,尽管我在过去成功地使用了同样的算法。我终于意识到,区别在于我所使用的随机数生成器。令人难以置信的是,它带来了巨大的变化。我希望一个更好的随机数发生器能产生更好的结果。答案可以是以代码示例的形式出现,也可以是指向先前存在的随机数字库的链接。最重要的要求是:

  • 它应该产生相对高质量的随机数流。
  • 它的周期必须超过100亿。
  • 它应该足够快,并提供一个良好的性能权衡。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-15 08:38:49

这似乎是Mersenne Twister的一个很好的用例。

  • 它比rand()的大多数标准实现更快。
  • 它有很长的(2^19937−1)周期。
  • 它有一个相当高的质量-它通过了大多数标准化的随机测试。
  • 这是公共领域
票数 13
EN

Stack Overflow用户

发布于 2014-09-13 03:10:20

如果您正在寻找一个非常快速,体面的高质量算法,您应该考虑xorshift128+xorshift1024*。它们几乎和LCG一样快(根据我的比较,它们比简单的内联LCG慢了30% ),同时比LCG有更好的质量。

您可以在这里找到它们的代码和比较:http://xorshift.di.unimi.it/

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14890813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档