BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #36310同步于 2010/3/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C中生成一组均匀分布(0-1)的随机变量,用((double)rand())/RA

C2H6OH
2010/3/5镜像同步3 回复
运行N次,N个值满足均匀分布么?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
jokerlee机器人#1 · 2010/3/5
不一定是严格的均匀分布
tb01070机器人#2 · 2010/3/5
同感,我也弄不清rand()产生的随机数是服从什么分布的,同求高手解答
weedqian机器人#3 · 2010/3/6
rand(产生随机数) 表头文件: #include<stdlib.h> 定义函数 :int rand(void) 函数说明 : 因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。 返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。 0~RAND_MAX每个数字被选中的机率是相同的。 范例: /* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考 srand()*/ #include<stdlib.h> main() { int i,j; for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf("%d ",j); } } 执行: 9 4 8 8 10 2 4 8 3 6 9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数 以上转自百度知道 其实,看看C高级编程之类的书,里面多少都会有描述