GCC中一些函数可以帮忙产生整型,不过都是int.
19.8.1 ISO C Random Number Functions
This section describes the random number functions that are part of the ISO C standard.
To use these facilities, you should include the header file stdlib.h in your program.
The value of this macro is an integer constant representing the largest value the
randfunction can return. In the GNU library, it is2147483647, which is the largest signed integer representable in 32 bits. In other libraries, it may be as low as32767.
The
randfunction returns the next pseudo-random number in the series. The value ranges from0toRAND_MAX.
This function establishes seed as the seed for a new series of pseudo-random numbers. If you call
randbefore a seed has been established withsrand, it uses the value1as a default seed.To produce a different pseudo-random series each time your program is run, do
srand (time (0)).
POSIX.1 extended the C standard functions to support reproducible random numbers in multi-threaded programs. However, the extension is badly designed and unsuitable for serious work.
This function returns a random number in the range 0 to
RAND_MAXjust asranddoes. However, all its state is stored in the seed argument. This means the RNG's state can only have as many bits as the typeunsigned inthas. This is far too few to provide a good RNG.If your program requires a reentrant RNG, we recommend you use the reentrant GNU extensions to the SVID random number generator. The POSIX.1 interface should only be used when the GNU extensions are not available.
另参见
http://meizhe143.blog.163.com/blog/static/38938362007102995121360/
但是如何产生长整型呢?
是否可以分别两次产生int型随机数,再将这两个数利用位操作,将一个数看成高位,另一个数看成低位,拼一个长整型出来。
这篇内容讨论了ISO C标准中的随机数函数,通常返回int类型,但不支持长整型。文中建议通过组合两个int类型随机数来创建长整型,并提供了关于如何设置种子和确保多线程环境中随机数的可重复性的信息。对于需要长整型随机数的场景,文章提出了使用位操作拼接两个int值的方案。
1268

被折叠的 条评论
为什么被折叠?



