gpt4 book ai didi

c - 兰德实现

转载 作者:太空狗 更新时间:2023-10-29 16:39:26 26 4
gpt4 key购买 nike

我想了解一下 rand() 和 srand() 函数是如何实现的,并想调整代码以将其修改为我的要求。我在哪里可以找到 rand() 和 srand() 的源代码。

最佳答案

randsrand 通常实现为一个简单的 LCG ,您可以轻松编写自己的代码(几行代码),而无需查找 randsrand 的来源。请注意,如果您出于“严肃”目的(例如密码学)需要随机数,则 RNG 比 LCG 好得多。

顺便说一句,C 标准本身包含了 randsrand 的示例实现:

static unsigned long int next = 1;

int rand(void) // RAND_MAX assumed to be 32767
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}

void srand(unsigned int seed)
{
next = seed;
}

关于c - 兰德实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4768180/

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