gpt4 book ai didi

c - 查看随机序列中的下四个数字(使用 srand 和 rand)

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

我使用 srand(SEED) 为我的随机数生成器播种一次,其中 SEED 只是一个 16 位数字,由按下按钮的时间长短生成。我的随机数生成器工作正常,但我需要能够提前看到序列中接下来的四个数字,如果有意义的话,不会中断任何事情。

因此,我通过执行以下操作获得序列中的下一个数字:

num = rand() % 4;

这给了我一个介于 0 和 3 之间的随机数,这很好。假设前 6 个数字是 0 3 2 1 2 3,而我只是按该序列生成了前 3 个。接下来的四个数字是 2、1、2、3。我希望能够获取这些数字并显示它们,但是再次调用 rand() 会破坏原始序列(顺便说一句,这是针对 SIMON 游戏的。一种查看接下来要按的东西的作弊模式)。

调用 srand(SEED) 将使我返回到 第一个 数字,因此我可以轻松地看到序列中的前四个数字而不会中断任何内容,但是如果我想看到数字 x -> x + 4,那么它就会搞砸了。

最佳答案

使用这样的东西:

int nextfourrand[4];

int
myrand (void);
{
int i;
int r = nextfourrand[0];
for (i = 0; i<=2; i++)
nextfourrand[i] = nextfourrand[i+1];
nextfourrand[3] = rand();
return r;
}

并使用它而不是 rand()。然后在初始化时,在 srand() 之后执行:

int i;
for (i = 0; i<=3; i++)
nextfourrand[i] = rand();

接下来的四个随机数在 nextfourrand 数组中。

关于c - 查看随机序列中的下四个数字(使用 srand 和 rand),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286034/

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