可能重复:
有效地生成随机数
我需要random numbers
在我的C++
应用程序中生成。看了这两篇文章就知道了——
http://www.cprogramming.com/tutorial/random.html
编写 ac 函数,生成一个随机数,或一对随机数,或给定特定范围的三组随机数
- 可以使用生成随机数srand()
,rand()
但在这两种情况下,根据 的当前时间system clock
用作seed
. 但我在第一篇文章中读到,rand()
如果种子相同,将创建相同的随机数。因此,如果两个不同的用户同时运行我的应用程序,那么他们将拥有相同的随机数。这将毫无意义,因为我需要随机数在大多数情况下是唯一的。(我知道如果它们是随机生成的,它们就不能真正 100% 唯一)
所以我的问题是我可以创建一个不基于系统时间的随机种子吗?如果可以,为什么rand()
用相同的种子产生相同的数字,有没有办法rand()
用相同的种子产生不同的数字,或者还有其他的吗生成随机数的方法?