关于C语言随机数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 01:39:09
程序如下:
int i,j;
double p[50],r=1.0;
for(i=0;i<50;i++) /*产生50个0到1之间的随机数*/
{
r=2053.0*r+13849.0; j=r/65536.0;
r=r-j*65536.0; p[i]=r/65536.0;
}

程序中的2053.0和13849.0是什么意思?是某个特殊的数字么?
还有那个j=r/65536.0和r=r-j*65536.0,这不就是r=r了么?
请高手解答!~谢谢!~

那两个数是伪随机数生成器里的数字,是个固定的数,可以通过一个初始值不重复的推出0-65535的数,从而可以实现随机0-65535中一共有两对这样的数字,具体是哪两个我也记不清了.如果要用随机数的话,建议直接调用随机函数.TC下是random(),VC下是rand();具体用法及用到的库文件可以去网上查.用百度一搜一大堆,我就不给你查了.如果还不明白再找的吧.