返回信息流double random(double start,double end)
{
//srand(unsigned(time(0)));
return start+(end-start)*rand()/RAND_MAX;
}
int main()
{
double random(double,double);
//srand(unsigned(time(0)));
cout<<"No."<<double(random(0,1))<<endl;
cout<<"No."<<double(random(0,1))<<endl;
cout<<"No."<<double(random(0,1))<<endl;
cout<<"No."<<double(random(0,1))<<endl;
return 0;
}
注释部分的srand()函数放在这两个的区别是什么?求解答..求原理。。。.
这是一条镜像帖。来源:北邮人论坛 / cpp / #84408同步于 2014/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
SRAND()求解
hills
2014/11/26镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
有区别的 运行的时候识别不了时间的变化 其实time(0)种子是一样的。放random里会得到四个相同的数,放main里是四个不同的数。
原因我有个想法也不知道对不对
【 在 gluowei 的大作中提到: 】
: 最终效果上没有区别吧 反正都把种子指定成time(0)了…
: 在double函数里那个每调用一次函数都会指定一次……
谢谢,那rand得到的值是在这个随机序列里再随机取一个还是随机序列里固定位置的值?
【 在 changzhu 的大作中提到: 】
: 放在main里面,只初始化了一次种子,每次调用rand是同一个随机序列
: 放在子方法里面,每次调用会重新初始化种子,得到的序列不一样
来自「北邮人论坛手机版」
rand就是一个函数,输入参数是那个种子,输入参数一样,得到的函数值就一样。每次取系统时间作为参数,输入参数不一样,函数值就不一样
【 在 hills (你 非礼勿视||) 的大作中提到: 】
: 谢谢,那rand得到的值是在这个随机序列里再随机取一个还是随机序列里固定位置的值?
: 来自「北邮人论坛手机版」
通过『我邮2.0』发布
哦哦 谢了!
【 在 changzhu 的大作中提到: 】
: rand就是一个函数,输入参数是那个种子,输入参数一样,得到的函数值就一样。每次取系统时间作为参数,输入参数不一样,函数值就不一样
:
: 通过『我邮2.0』发布
暖神指点,我得好好想想。。
【 在 nuanyangyang 的大作中提到: 】
: 想想,你只用C语言,而不利用计算机的其他状态(比如某些传感器的温度,比如IO设备输入的数据等等),是无法产生真随机数的。