gpt4 book ai didi

c - 使用英特尔 MKL 即时生成随机数

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:57 25 4
gpt4 key购买 nike

我正在尝试使用英特尔 MKL 生成具有均匀分布的离散随机数。viRngUniformBits32 函数生成 n 个随机整数。我想即时生成随机数,而不是一次生成它们 n。我试过了,但显然它不起作用。我调用该函数 5 次,它输出相同的值。我假设它每次都根据种子值生成序列中的第一个数字。现在我该如何修改它,以便每次调用此方法时,我都得到一个随机数

#include <stdio.h>
#include "mkl.h"
int main()
{
unsigned int out;
VSLStreamStatePtr stream;
vslNewStream(&stream,VSL_BRNG_MCG31,2);
for (int i=0;i<5;i++)
{
//FORMAT viRngUniformBits32( method, stream, n, r );
viRngUniformBits32(VSL_RNG_METHOD_UNIFORMBITS32_STD,stream,1,&out);
printf("%u\t",out);
}
printf("\n");
vslDeleteStream(&stream);
}

最佳答案

viRngUniformBits32 方法不支持 BRNG VSL_BRNG_MCG31

所以我使用了 VSL_BRNG_MT19937 并且没有任何错误。

感谢jaket提醒我查看错误码。

关于c - 使用英特尔 MKL 即时生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com