小编day*_*pnl的帖子

为什么C++和R中的这些RNG不会产生类似的结果?

请原谅这篇文章令人作呕的noobish性质,但我对那些在个人电脑上使用C++和R编程的人有一个疑问.

问题:为什么下面两个程序产生的这些随机数不相等,我该如何解决这个问题?

  1. 首先,我怀疑我在R程序中误用了local函数和<<-运算符.
  2. 其次,我怀疑这可能是一个浮动准确性问题.这对我来说并不是很明显两个程序是如何不同的,所以我不知道如何解决这个问题.

我已经尝试将我在C++中的所有计算转换为double/ float(偶数long double),并使用fmod而不是模数运算符%:再次输出不同的输出,但仍然与R中的输出不相似.我不知道它是否具有任何重要意义,但我我想补充说我正在使用G ++编译器编译C++代码.

算法:以下算法可用于任何标准个人计算机.建议并行使用三个字生成器,

  • m k = 171 m k-1(mod 30269)
  • M ' ķ 172例M' K-1(MOD 30307)
  • 米'' ķ 172例M '' k-1个(MOD 30323)

并用作伪随机数的小数部分

  • ķ = { ķ/30269 + M" ķ/30307 + M '' ķ/30323}

我已经使用的初始值中号0 = 5,M" 0 = 11,和M '' 0 = 17.

程序: …

c++ random r

5
推荐指数
2
解决办法
273
查看次数

标签 统计

c++ ×1

r ×1

random ×1