【发布时间】:2011-04-11 05:55:14
【问题描述】:
我很难弄清楚如何使用 rand() 并使用 Xcode 用 time() 播种它。我想生成 0 到 1 之间的随机十进制数。
代码为元素 1 和 2 提供了看似随机的数字,但元素 0 总是在 0.077 左右。任何想法为什么会这样?
我的代码是:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
double array[3];
double rand_max = RAND_MAX;
srand((int)time(NULL));
for (int iii = 0; iii < 3; iii++)
array[iii] = rand() / rand_max;
for (int iii = 0; iii < 3; iii++)
printf("Element %d is: %lf.\n", iii, array[iii]);
return(0);
}
多次运行的输出如下:
[Session started at 2010-09-11 21:19:07 -0500.]
Element 0 is: 0.076918.
Element 1 is: 0.753664.
Element 2 is: 0.824467.
The Debugger has exited with status 0.
[Session started at 2010-09-11 21:19:12 -0500.]
Element 0 is: 0.076957.
Element 1 is: 0.411353.
Element 2 is: 0.602494.
The Debugger has exited with status 0.
[Session started at 2010-09-11 21:19:16 -0500.]
Element 0 is: 0.076988.
Element 1 is: 0.937504.
Element 2 is: 0.624915.
The Debugger has exited with status 0.
[Session started at 2010-09-11 21:19:24 -0500.]
Element 0 is: 0.077051.
Element 1 is: 0.989806.
Element 2 is: 0.669757.
【问题讨论】: