谁能用C语言或matlab产生5行4列按泊松分布且值在0和1之间的随机数需提供程序代码或操作流程,我要求有最终的数值
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/26 00:25:12
![谁能用C语言或matlab产生5行4列按泊松分布且值在0和1之间的随机数需提供程序代码或操作流程,我要求有最终的数值](/uploads/image/z/5471460-36-0.jpg?t=%E8%B0%81%E8%83%BD%E7%94%A8C%E8%AF%AD%E8%A8%80%E6%88%96matlab%E4%BA%A7%E7%94%9F5%E8%A1%8C4%E5%88%97%E6%8C%89%E6%B3%8A%E6%9D%BE%E5%88%86%E5%B8%83%E4%B8%94%E5%80%BC%E5%9C%A80%E5%92%8C1%E4%B9%8B%E9%97%B4%E7%9A%84%E9%9A%8F%E6%9C%BA%E6%95%B0%E9%9C%80%E6%8F%90%E4%BE%9B%E7%A8%8B%E5%BA%8F%E4%BB%A3%E7%A0%81%E6%88%96%E6%93%8D%E4%BD%9C%E6%B5%81%E7%A8%8B%2C%E6%88%91%E8%A6%81%E6%B1%82%E6%9C%89%E6%9C%80%E7%BB%88%E7%9A%84%E6%95%B0%E5%80%BC)
谁能用C语言或matlab产生5行4列按泊松分布且值在0和1之间的随机数需提供程序代码或操作流程,我要求有最终的数值
谁能用C语言或matlab产生5行4列按泊松分布且值在0和1之间的随机数
需提供程序代码或操作流程,我要求有最终的数值
谁能用C语言或matlab产生5行4列按泊松分布且值在0和1之间的随机数需提供程序代码或操作流程,我要求有最终的数值
第一步:产生很多(0,1)上的均匀分布随机数(可以查表,不过一般的软件可以直接调)设为x1,x2,x3,x4,x5.
第二步:假设需要模拟的泊松分布参数为λ,计算出e^(-λ),
第三步:取满足x1* x2* ...* xk >= e^(-λ) > x1* x2* ...*x(k+1)
中的K为产生的第一个随机数,然后把上面用过的k+1个数去掉,又重复上面的步骤就可以了.
比如 x1*x2 >= e^(-λ),但是x1*x2*x3 < e^(-λ),那么产生的第一个随机数就为2,然后又从x4乘起,重复上面的步骤,产生第二个随机数.
#include
#include
#include
#include
double Rand()
{
\x05return (double)(rand() & 0xFFFF) / (double)0x10000;
}
int Prand(double n)
{
\x05double t=1,x = Rand();
\x05int y = 0;
\x05do
\x05{
\x05\x05t *= x;
\x05\x05x = Rand();
\x05\x05if(t >= n) y ++;
\x05}
\x05while(t >= n);
\x05return y;
}
void main()
{
\x05int table[5][4];
\x05double n;
\x05srand(time(NULL));
\x05printf("please input number");
\x05scanf("%lf",&n);
\x05n = exp(-n);
\x05for(int i=0;i