gpt4 book ai didi

c - POSIX C API 中的随机数

转载 作者:IT王子 更新时间:2023-10-29 00:36:54 26 4
gpt4 key购买 nike

我希望在 POSIX 系统上生成大的非负整数随机值。我找到了 2 个符合条件的可能函数,以及它们各自的初始值设定项:

       #include <stdlib.h>

long int random(void);
void srandom(unsigned int seed);
CONFORMING TO
4.3BSD, POSIX.1-2001.

// and

long int lrand48(void);
void srand48(long int seedval);
CONFORMING TO
SVr4, POSIX.1-2001.
  1. 首选哪些函数(线程安全和生成的值范围)?
  2. 鉴于安全性不是问题,我应该如何为它们播种?
  3. 播种方法是否应该因播种函数的不同参数(long intunsigned int)而不同?

最佳答案

使用nrand48,它与lrand48具有相同的范围,并接收指向用作种子的数组的指针。使这个线程成为本地线程将确保线程安全。 (作为旁注,glibc 实现似乎有一些问题,请参阅 http://evanjones.ca/random-thread-safe.html 了解更多信息,此页面还包含线程安全随机数生成函数的一个很好的总结)

关于c - POSIX C API 中的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850474/

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