当前位置: 技术问答>linux和unix
请教QT下随机数算法或函数(急,在线等)
来源: 互联网 发布时间:2015-04-23
本文导语: 谢谢 | NAME rand, srand - random number generator. SYNOPSIS #include int rand(void); void srand(unsigned int seed); DESCRIPTION The rand() function returns...
谢谢
|
NAME
rand, srand - random number generator.
SYNOPSIS
#include
int rand(void);
void srand(unsigned int seed);
DESCRIPTION
The rand() function returns a pseudo-random integer between 0 and
RAND_MAX.
The srand() function sets its argument as the seed for a new sequence
of pseudo-random integers to be returned by rand(). These sequences
are repeatable by calling srand() with the same seed value.
If no seed value is provided, the rand() function is automatically
seeded with a value of 1.
rand, srand - random number generator.
SYNOPSIS
#include
int rand(void);
void srand(unsigned int seed);
DESCRIPTION
The rand() function returns a pseudo-random integer between 0 and
RAND_MAX.
The srand() function sets its argument as the seed for a new sequence
of pseudo-random integers to be returned by rand(). These sequences
are repeatable by calling srand() with the same seed value.
If no seed value is provided, the rand() function is automatically
seeded with a value of 1.
|
随机数的问题是,如果有一个种子,那么任何算法都是合理的,包括你简单的数学运算。
这就好比,在先有一个鸡或蛋,然后,开始鸡生蛋,再蛋生鸡。每一个鸡或蛋都是你的随机数。
随机数难就难在,最初具有随机特性的种子源没有。
如果没有随机的种子,那么由它所产生所有数,都不可能是随机的。固定的源+固定的算法=固定的结果。
对于,libc里的rand当然也不是真正的随机数,他的种子是1。并且产生的随机数的序列是一致的。srand只要种子一样,下面的随机数序列也是一样的。
intel不是在815芯片组中就带了一个硬件的随机数产生器吗!
linux现在也支持它了。你可以考虑用它来生成真正的随机数。
这就好比,在先有一个鸡或蛋,然后,开始鸡生蛋,再蛋生鸡。每一个鸡或蛋都是你的随机数。
随机数难就难在,最初具有随机特性的种子源没有。
如果没有随机的种子,那么由它所产生所有数,都不可能是随机的。固定的源+固定的算法=固定的结果。
对于,libc里的rand当然也不是真正的随机数,他的种子是1。并且产生的随机数的序列是一致的。srand只要种子一样,下面的随机数序列也是一样的。
intel不是在815芯片组中就带了一个硬件的随机数产生器吗!
linux现在也支持它了。你可以考虑用它来生成真正的随机数。
|
通常都是调用时间当随机种子.