收藏 分销(赏)

产生高斯随机数.docx

上传人:s4****5z 文档编号:8926949 上传时间:2025-03-08 格式:DOCX 页数:6 大小:99.28KB
下载 相关 举报
产生高斯随机数.docx_第1页
第1页 / 共6页
产生高斯随机数.docx_第2页
第2页 / 共6页
产生高斯随机数.docx_第3页
第3页 / 共6页
产生高斯随机数.docx_第4页
第4页 / 共6页
产生高斯随机数.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、一、产生0-1均匀分布数采用混合同余法,即为一个在01之间的随机数。通常情况下,选取,我们任意给定一个初始值,即可得到一个随机数,在程序中采用指针变量*s,使得每次产生的随机数都不一样,只要改变循环的次数,就可以得到任意多个01随机数。程序实现代码如下:double x1(double a,double b, int *s) double t;*s=2045*(*s)+1;*s=*s-(*s/1048576)*1048576;t=(*s)/1048576.0;return(t);二、产生标准高斯分布数标准的高斯分布均值=0,方差=1;根据中心极限定理有,根据此式可以由12个01分布数产生一个高

2、斯数。改变循环次数可以得到任意多个标准高斯分布数。程序实现代码如下:int main() double mean,sigma; double x100; int i,j; int s; mean=0.0; sigma=1.0; s=19444; cout产生个高斯数:endl; for(j=0;j200;j+) xj=0; for(i=0;i12;i+) xj=xj+x1(mean,sigma,&s); xj=xj-6.0; printf(%13.7f,xj);if(j+1)%5=0)coutendl; coutendl;产生一百个高斯数:三、由得到的高斯分布数绘制概率密度函数采用API图形处

3、理中的Rectangle矩阵绘制函数绘制图形,将得到的高斯数分成一个个小区间,计算每个区间内的高斯数的个数,用这些个数作为矩阵的高。程序代码如下:#define NN 1000#define PI 3.14159826 #include #include /#include #include #include #include #include #include #include long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstan

4、ce);BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)MSG Message;if(!InitWindowsClass(hInstance)return FALSE;if(!InitWindows(hInstance,nCmdShow)return FALSE;while (GetMessage(&Message,0,0,0)TranslateMessage

5、Message);DispatchMessage(&Message);return Message.wParam;long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)HDC hDC;HBRUSH hBrush;HPEN hPen;PAINTSTRUCT PtStr;/ double x1(double a,double b, int *s); double mean=0,sigma=1.0;srand(unsigned)time(NULL); double x10000,b10000=0,temp; int

6、 i,j; int s1;int k; s1=19444; for(j=0;j10000;j+) xj=0; for(i=0;i12;i+) xj=xj+x1(mean,sigma,&s1); xj=xj-6.0; for(i=0;i10000;i+) temp=xi;/ printf(%lft,temp); for(j=0;j10000;j+)if(-3+0.2*jtemp)bj=bj+1;/switch(iMessage)case WM_PAINT:hDC=BeginPaint(hWnd,&PtStr);SetMapMode(hDC,MM_ANISOTROPIC);hPen=(HPEN)G

7、etStockObject(BLACK_PEN);hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);SelectObject(hDC,hBrush);SelectObject(hDC,hPen);/for(k=0;k100;k+)Rectangle(hDC,20+10*k,400-0.3*bk,30+10*k,400);EndPaint(hWnd,&PtStr);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;default:return(DefWindowProc(hWnd,iMessage,wP

8、aram,lParam);BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)HWND hWnd;hWnd=CreateWindow(WinFill,高斯分布,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd)return FALSE;ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);return TRUE;BOOL InitWindowsClass(HINSTANCE hInstan

9、ce)WNDCLASS WndClass;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH);WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);WndClass.hIcon=LoadIcon(NULL,END);WndClass.hInstance=hInstance;WndClass.lpfnWndProc=WndProc;WndClass.lpszClassName=WinFill;WndClass.lpszMenuName=NULL;WndClass.style=CS_HREDRAW|CS_VREDRAW;return RegisterClass(&WndClass);double x1(double a,double b, int *s) double t; *s=2045*(*s)+1; *s=*s-(*s/1048576)*1048576; t=(*s)/1048576.0; return(t);得到结果图如下:

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服