Ser*_*ano 2 c random mersenne-twister
我想使用Mersenne Twister C库之一(例如tinymt,mtwist或libbrahe),以便可以将其用作 C程序rand()的种子。我找不到关于如何执行此操作的简单简约示例。
我已经通过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;
}
Run Code Online (Sandbox Code Playgroud)
(本来我写的是这段代码不会编译,但是由于卡尔·诺鲁姆的回答,我终于可以编译它了。)
谁能给我一个简单的示例,说明如何使用任何Mersenne Twister C库正确生成随机数?
这是有关如何使用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;
}
Run Code Online (Sandbox Code Playgroud)
编译运行如下:
[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]$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6568 次 |
| 最近记录: |