gpt4 book ai didi

c - srand(getpid()) 会影响格式/结构吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:27 24 4
gpt4 key购买 nike

这个问题很快:)。我知道 srand() 用于为随机数生成器提供种子,以防止生成相同的随机数序列。同样,我知道 getpid()“应返回调用进程的进程 ID。”

( http://pubs.opengroup.org/onlinepubs/009695399/functions/getpid.html )

由于每次运行我的程序(生产者和消费者通过共享内存进行通信的程序)时进程 ID 最终都会不同,因此 PID 也会不同,从而提供完美的种子。我为随机数 rand() % (100-1) + 1 设置了一个范围。

srand(getpid()) 是否以特定格式提供随机数?

为了完整起见,这里是我的查询相关的代码部分:

srand(getpid());

while(x == 0)
{
if(*randNum == 101)
{
*randNum = rand() % (100 - 1) + 1;
*pidNum = getpid();

printf("priority: %d Process ID: %d \n", *randNum, *pidNum);

x = 1;
}
else
{
*randNum++;
*pidNum++;
}
}

最佳答案

我不太确定您所说的特定格式是什么意思。但是 getpid() 作为种子并不是一个好的选择。 PID 在“无符号”空间的很小范围内,很容易猜测。

如果您不关心人们是否能够猜出您的种子,那么 time(NULL) 作为种子是一个更好的选择。

关于c - srand(getpid()) 会影响格式/结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927060/

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