【发布时间】:2015-06-17 12:19:58
【问题描述】:
我有通过 Rmath.h 使用随机数生成的 C 代码,我想与通过 R 调用的 C 代码进行比较。
下面的 c 代码使用 R CMD SHLIB 加载,然后在 R 中使用 dyn.load() 并使用 .C("ranNorm",as.double(0),as.double(1),as.double(1)) 调用
#include <R.h>
#include <Rmath.h>
void ranNorm(double *mean, double *sd, double *x){
double mean = mean[0];
double sd = sd[0];
GetRNGstate();
x[0] = rnorm(mean, sd);
PutRNGstate();
}
我可以使用 set.seed() 在 R 中设置种子。但是我想将此与以下 c 代码进行比较:
#define MATHLIB_STANDALONE
#include <Rmath.h>
int main(void){
double z;
z = rnorm(0.0,1.0);
printf("%f \n", z);
return 0;
}
使用-lRmath编译和运行
但是我不确定如何使用此代码设置种子以确保与之前代码中的结果相同。非常感谢!
【问题讨论】:
标签: c r random-seed