有没有办法在R中实现Xorshift32算法?

首先,我根本不是一个R专家,我正在寻找一种在R中实现Xorshift32算法的方案,如果可能的话,使用RNGKind。

我的最终目标是对Xorshift32算法进行随机性测试,使用这个库。https:/rdrr.iocranCryptRndTestmanadaptive.chi.square.html。

先谢谢你的帮助!

解决方案:

这是第一个C实现的R版本,如图所示。维基百科页面 关于xorshift算法。

xorshift32 <- function(x)
{
  x <- as.integer(x)
  x <- bitwXor(bitwShiftL(x, 13), x)
  x <- bitwXor(bitwShiftR(x, 17), x)
  bitwXor(bitwShiftL(x, 5), x)
}

xorshift32(1)
#> [1] 270369

但是,如果能直接通过R中的一个函数调用编译后的C代码,那就更好了。Rcpp::cppFunction:

Rcpp::cppFunction("uint32_t xorshift32(uint32_t x){x^=x<<13;x^=x>>17;x^=x<<5;return x;}")

xorshift32(1)
#> [1] 270369

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在Firestore中添加子库到文档中?

2022-10-11 20:21:42

未分类

继承DICOM结构来封装新文件是个好办法吗?[已关闭]

2022-10-11 20:32:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索