gpt4 book ai didi

c - 如何在没有 rand() 函数的情况下生成随机数?

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

我想生成介于 0 和某个整数之间的(伪)随机数。如果它们不是太随意,我不介意。我可以访问当天的当前时间,但不能访问 rand 函数。谁能想出一种足够强大的方法来生成这些?也许,从一天中的时间丢弃一些位并取模我的整数或其他东西?

我正在使用 c。

最佳答案

如果您想要一个超简单的伪随机生成器,您可以只使用 Linear Feedback shift Register .

维基百科文章有一些代码片段供您查看,但基本上 16 位生成器的代码看起来像这样(从该页面轻轻按摩...)

  unsigned short lfsr = 0xACE1u;
unsigned bit;

unsigned rand()
{
bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5) ) & 1;
return lfsr = (lfsr >> 1) | (bit << 15);
}

关于c - 如何在没有 rand() 函数的情况下生成随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7602919/

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