产生高斯随机数

上传人:mg****85 文档编号:33965767 上传时间:2018-02-19 格式:DOCX 页数:6 大小:99.28KB
返回 下载 相关 举报
产生高斯随机数_第1页
第1页 / 共6页
产生高斯随机数_第2页
第2页 / 共6页
产生高斯随机数_第3页
第3页 / 共6页
产生高斯随机数_第4页
第4页 / 共6页
产生高斯随机数_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《产生高斯随机数》由会员分享,可在线阅读,更多相关《产生高斯随机数(6页珍藏版)》请在金锄头文库上搜索。

1、一、产生0-1均匀分布数采用混合同余法, , , 即为一个在1()modiixacM/iiyxiy01之间的随机数。通常情况下,选取 ,我们任意202045,1ac给定一个初始值 ,即可得到一个随机数,在程序中采用指针变量1i*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);二、产生标准高斯分布数标准的高斯分布均值

2、 =0,方差 =1;根据中心极限定理有,根据此式可以由12个01分布数产生一个高斯数。改120.6iizy变循环次数可以得到任意多个标准高斯分布数。程序实现代码如下:int main() double mean,sigma;double x100;int i,j;int s;mean=0.0;sigma=1.0;s=19444;cout #include /#include #include #include #include #include #include #include long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,L

3、ONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);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 FALS

4、E;while (GetMessage(&Message,0,0,0)TranslateMessage(DispatchMessage(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); do

5、uble x10000,b10000=0,temp;int i,j;int s1;int k;s1=19444; for(j=0;jtemp)bj=bj+1;/switch(iMessage)case WM_PAINT:hDC=BeginPaint(hWnd,SetMapMode(hDC,MM_ANISOTROPIC);hPen=(HPEN)GetStockObject(BLACK_PEN);hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);SelectObject(hDC,hBrush);SelectObject(hDC,hPen);/for(k=0;k

6、100;k+)Rectangle(hDC,20+10*k,400-0.3*bk,30+10*k,400);EndPaint(hWnd,return 0;case WM_DESTROY:PostQuitMessage(0);return 0;default:return(DefWindowProc(hWnd,iMessage,wParam,lParam);BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)HWND hWnd;hWnd=CreateWindow(WinFill,高斯分布,WS_OVERLAPPEDWINDOW,CW_USEDEFAU

7、LT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd)return FALSE;ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);return TRUE;BOOL InitWindowsClass(HINSTANCE hInstance)WNDCLASS WndClass;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH);WndClass.h

8、Cursor=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(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);得到结果图如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号