相关疑难解决方法(0)

建议初始化srand的方法?

我需要一种'好'的方法来初始化C++中的伪随机数生成器.我发现一篇文章指出:

为了生成类似随机数的数字,srand通常被初始化为一些独特的值,就像那些与执行时间相关的值.例如,函数时间返回的值(在标题ctime中声明)每秒都不同,这对于大多数随机需求来说足够独特.

Unixtime对我的应用来说并不是很有特色.有什么更好的方法来初始化它?奖励点是否可移植,但代码主要在Linux主机上运行.

我正在考虑做一些pid/unixtime数学来得到一个int,或者可能从中读取数据/dev/urandom.

谢谢!

编辑

是的,我实际上是每秒多次启动我的应用程序而且我遇到了碰撞.

c++ random srand

64
推荐指数
8
解决办法
9万
查看次数

为什么我总是使用rand()得到相同的随机数序列?

这是我第一次用C语言尝试随机数(我想念C#).这是我的代码:

int i, j = 0;
for(i = 0; i <= 10; i++) {
    j = rand();
    printf("j = %d\n", j);
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,每次运行代码时都会得到相同的序列.但是如果我srand(/*somevalue/*)for循环之前添加,它会生成不同的随机序列.有谁能解释为什么?

c random

50
推荐指数
6
解决办法
11万
查看次数

标签 统计

random ×2

c ×1

c++ ×1

srand ×1