产生0到1之间均匀分布的一个随机数与随机数序列
2010-12-16 23:32
316 查看
1、功能:
产生0到1之间均匀分布的一个随机数
2、方法说明:
设m=216,产生产生0到1之间均匀分布的一个随机数的计算公式如下:
ri=mod(2053ri-1 +13849,m),i=1,2,3……
pi =ri/m
例:连续产生10个0到1之间均匀分布的一个随机数 。r的初值取5.0
1 #include "stdio.h"
2 double rnd1(double *r)
3 { int m;
4 double s,u,v,p;
5 s=65536.0; u=2053.0; v=13849.0;
6 m=(int)(*r/s); *r=*r-m*s;
7 *r=u*(*r)+v; m=(int)(*r/s);
8 *r=*r-m*s; p=*r/s;
9 return(p);
}
main()
{ int i;
double r;
r=5.0;
printf("\n");
for (i=0; i<=9; i++)
printf("%10.7lf\n",rnd1(&r));
printf("\n");
getch();
}
3、功能:
产生0到1之间均匀分布的一个随机数序列
例:产生50个0到1之间均匀分布的一个随机数序列,r的初值取1.0
1
2
3 #include "stdio.h"
4 void rnds(r,p,n)
5 double *r,p[];
6 int n;
7 { int i,m;
8 double s,u,v;
9 s=65536.0; u=2053.0; v=13849.0;
for (i=0; i<=n-1; i++)
{ *r=u*(*r)+v; m=(int)(*r/s);
*r=*r-m*s; p[i]=*r/s;
}
return;
}
main()
{ int i,j;
double p[50],r;
r=1.0;
rnds(&r,p,50);
printf("\n");
for (i=0; i<=9; i++)
{ for (j=0; j<=4; j++)
printf("%10.7lf ",p[5*i+j]);
printf("\n");
}
printf("\n");
getch();
}
产生0到1之间均匀分布的一个随机数
2、方法说明:
设m=216,产生产生0到1之间均匀分布的一个随机数的计算公式如下:
ri=mod(2053ri-1 +13849,m),i=1,2,3……
pi =ri/m
例:连续产生10个0到1之间均匀分布的一个随机数 。r的初值取5.0
1 #include "stdio.h"
2 double rnd1(double *r)
3 { int m;
4 double s,u,v,p;
5 s=65536.0; u=2053.0; v=13849.0;
6 m=(int)(*r/s); *r=*r-m*s;
7 *r=u*(*r)+v; m=(int)(*r/s);
8 *r=*r-m*s; p=*r/s;
9 return(p);
}
main()
{ int i;
double r;
r=5.0;
printf("\n");
for (i=0; i<=9; i++)
printf("%10.7lf\n",rnd1(&r));
printf("\n");
getch();
}
3、功能:
产生0到1之间均匀分布的一个随机数序列
例:产生50个0到1之间均匀分布的一个随机数序列,r的初值取1.0
1
2
3 #include "stdio.h"
4 void rnds(r,p,n)
5 double *r,p[];
6 int n;
7 { int i,m;
8 double s,u,v;
9 s=65536.0; u=2053.0; v=13849.0;
for (i=0; i<=n-1; i++)
{ *r=u*(*r)+v; m=(int)(*r/s);
*r=*r-m*s; p[i]=*r/s;
}
return;
}
main()
{ int i,j;
double p[50],r;
r=1.0;
rnds(&r,p,50);
printf("\n");
for (i=0; i<=9; i++)
{ for (j=0; j<=4; j++)
printf("%10.7lf ",p[5*i+j]);
printf("\n");
}
printf("\n");
getch();
}
相关文章推荐
- 通过均匀分布随机数产生器获得一个高斯分布随机数产生器
- 产生a到b之间均匀分布的随机数
- 产生a到b之间均匀分布的随机数
- Javascript 随机数函数 学习之一:产生服从均匀分布随机数
- 如何快速产生一个1-n的无重复随机数序列
- 数字信号产生之均匀分布的随机数
- 推导:通过均匀分布来产生任意分布随机数
- 一个生成均匀分布随机数的问题
- C++中如何产生均匀分布的随机数
- matlab的rand()函数产生均匀分布函数的正确用法 / matlab 中如何产生0-1上均匀分布的随机数
- 均匀分布随机数产生的程序
- JavaScript产生一个n到m之间的随机数
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- 产生特定分布的随机数(一):均匀分布和高斯分布
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- 生成随机数的一个可靠算法,高质量的均匀分布的随机函数
- 随机数与给定随机数生成器[0,m)产生另一个随机数生成器[0, n)(均匀分布)
- matlab产生符合某个分布的随机数序列
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- 不均匀分布随机数产生均匀分布随机数