首页 > 编程知识 正文

r语言生成二项分布随机数(数字信号产生之韦伯分布的随机数)

时间:2023-05-05 19:31:07 阅读:121746 作者:3152

uniform.h

#pragma once

类统一

{

隐私:

double a,b,generate_num;

int * seed;

int s;

int M,n,I,j;

公共:

统一() )

{

M=1048576;

N=2045;

}

void generate (;

双精度随机_编号(双精度,双精度,int *;

(;

双统一:3360 random _ number (双精度,双精度b,int * seed ) ) ) ) ) ) 0

{

(**seed )=n* ) seed ) 1;

(***seed )=) seed )-) ) seed )/M ) m;

generate _ num=static _ cast double ((* seed ) )/M;

generate_num=a(B-a ) * generate_num;

返回(generate _ num;

}

weibull.h

#pragma once

#include math.h

#include 'uniform.h '

类Weibull

{

隐私:

双精度a、b、u、x、generate_num;

int * seed;

int s,I,j;

公共:

weibull () }

void generate (;

双精度随机_编号(双精度,双精度,int *;

(;

double Weibull :3360 random _ number (doublea,double b,int * seed ) ) ) ) ) ) ) ) )。

{

统一unif _ num;

u=unif _ num.random _ number (0.0,1.0,seed );

u=-log(u;

x=b*pow(u,1.0/a );

返回(x;

}

weibull.cpp

//产生50个阿尔法=2、贝塔=1的韦伯分布的随机数

#include iostream

#包含iomanip

#include 'Weibull.h '

用户命名空间STD;

Void主() )

{

Weibull解决方案;

solution.generate (;

}

void weibull:generate (

{

cout '韦伯分布的参数alpha:';

cin a;

cout '韦伯分布的参数beta:';

cin b;

cout '输入随机数种子。' ;

cin s;

cout '生成随机数的结果是' endl;

for(I=0; i 10; I )

{

for(j=0; j 5; j )

{

generate_num=random_number(a,b,s );

coutsetw(10 ) generate_num;

}

cout endl;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。