如何在C语言中使用Mersenne Twister随机数生成库?

塞拉诺

我想使用Mersenne Twister C库之一(例如tinymtmtwist或libbrahe), 以便可以将其用作 rand() C程序 的种子 我无法找到有关如何执行此操作的简单简约示例。

我已经通过mtwist软件包做到了这一点,但是通过pjs的注释,我意识到这是错误的方法:

#include <stdio.h>
#include <stdlib.h>
#include "mtwist.h"

int main() {
    uint32_t random_value;

    random_value = mt_lrand();
    srand(random_value);
    printf("mtwist random: %d; rand: %d\n", random_value, rand());

    return 0;
}

(本来我写的是这段代码不会编译,但是由于卡尔·诺鲁姆的回答,我毕竟可以编译它了。)

谁能给我一个简单的示例,说明如何使用任何Mersenne Twister C库正确生成随机数?

js

这是有关如何使用mtwistMersenne Twister实现的演示

#include <stdio.h>
#include <stdlib.h>
#include "mtwist.h"

int main(void) {
   int i;
   mt_seed();
   for(i = 0; i < 10; ++i) {
      printf("%f\n", mt_ldrand());
   }
   return EXIT_SUCCESS;
}

编译运行如下:

[pjs@amber:mtwist-1.4]$ gcc run-mtwist.c mtwist.c
[pjs@amber:mtwist-1.4]$ ./a.out
0.817330
0.510354
0.035416
0.625709
0.410711
0.980872
0.965528
0.444438
0.705342
0.368748
[pjs@amber:mtwist-1.4]$

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章