【发布时间】:2014-03-27 05:19:20
【问题描述】:
我正在尝试编写代码以返回随机字符,因此我编写了以下代码:
static char prepare-data()
{
Sleep(rand()%500); // sleep random amount
int n = rand()%26;
char c = (char)(n+65);
return c; // return random character
}
static void writer()
{
int i, writePt = 0;
char data;
for (i = 0; i < data_length; i++)
{
data = preparedata(); // go off & get data ready
buffers[writePt] = data; // put data into buffer
cout<<"writer thread: buffer["<<writePt<<"]="<<data<<endl;
writePt = (writePt + 1) % num_total_buffer;
}
}
但每次我运行代码时都会得到相同的字符 这算不算问题
【问题讨论】:
-
在程序开始时为随机数生成器提供一个种子。 srand(时间(NULL));
-
您需要查看随机数生成器。这个问题几乎每天都会出现在 SO 上。
-
如果你每次都想要一个不同的随机数,这只是一个问题......见xkcd.com/221
标签: c++