亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hypergeometricdlg.cpp

?? A program for calculation of hypergeometric distribution
?? CPP
字號:
// HypergeometricDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Hypergeometric.h"
#include "HypergeometricDlg.h"
#include "HyperGeometricProbability.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

int nFactorialFunctionCall;
int nDPFactorialFunctionCall;
int nDPFactorialFunctionCall2;
int nDPFactorialFunctionCall3;

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHypergeometricDlg dialog

CHypergeometricDlg::CHypergeometricDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CHypergeometricDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CHypergeometricDlg)
	m_doubeResult = 0.0;
	m_nC = 0;
	m_nG = 0;
	m_nK = 0;
	m_nN = 0;
	m_dwCalcTime = 0;
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_vecMemFactorial.push_back(new CLargeNumber("1"));
	m_vecMemFactorialTmp.push_back(new string("1"));
	m_vecMemFactorialTmp2.push_back( "1" );
	nFactorialFunctionCall = 0;
	nDPFactorialFunctionCall = 0;
	nDPFactorialFunctionCall2 = 0;
}

void CHypergeometricDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHypergeometricDlg)
	DDX_Control(pDX, IDC_PROGRESSBAR, m_ctrlProgress);
	DDX_Text(pDX, IDC_EDIT_P, m_doubeResult);
	DDX_Text(pDX, IDC_EDIT_C, m_nC);
	DDX_Text(pDX, IDC_EDIT_G, m_nG);
	DDX_Text(pDX, IDC_EDIT_K, m_nK);
	DDX_Text(pDX, IDC_EDIT_N, m_nN);
	DDX_Text(pDX, IDC_EDIT_CALCTIME, m_dwCalcTime);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CHypergeometricDlg, CDialog)
	//{{AFX_MSG_MAP(CHypergeometricDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BTN_CALCULATE, OnBtnCalculate)
	ON_BN_CLICKED(IDC_BTN_DPCALCULATE, OnBtnDpcalculate)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BTN_DPCALCULATE2, OnBtnDpcalculate2)
	ON_BN_CLICKED(IDC_BTN_DPCALCULATE3, OnBtnDpcalculate3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHypergeometricDlg message handlers

BOOL CHypergeometricDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CHypergeometricDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CHypergeometricDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CHypergeometricDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

CLargeNumber CHypergeometricDlg::Factorial(int iNumber)
{
	CLargeNumber oLN("1");
	if(iNumber > 1)
	{
		for(int i=2; i<=iNumber; i++)
		{
			oLN *= i;
			TRACE1("%d\n", nFactorialFunctionCall++);
		}
	}
	return oLN;
}

CLargeNumber CHypergeometricDlg::DPFactorial2(int iNumber)
{
	int nSize = m_vecMemFactorialTmp2.size();
	if ( iNumber < nSize )
		return CLargeNumber( (m_vecMemFactorialTmp2[iNumber]) );
	CLargeNumber oLN = CLargeNumber( m_vecMemFactorialTmp2[nSize-1] );

	for(int i = nSize; i<=iNumber; i++)
	{
		oLN *= i;
		m_vecMemFactorialTmp2.push_back( oLN.ToString() );
		TRACE1("%d\n", nDPFactorialFunctionCall2++);
	}

	return oLN;
}


CLargeNumber CHypergeometricDlg::DPFactorial(int iNumber)
{
	int nSize = m_vecMemFactorialTmp.size();
	if ( iNumber < nSize )
		return CLargeNumber( *(m_vecMemFactorialTmp[iNumber]) );
	CLargeNumber oLN = CLargeNumber( *m_vecMemFactorialTmp[nSize-1] );

	for(int i = nSize; i<=iNumber; i++)
	{
		oLN *= i;
		m_vecMemFactorialTmp.push_back( new string(oLN.ToString()) );
		TRACE1("%d\n", nDPFactorialFunctionCall++);
	}

	return oLN;
}

double CHypergeometricDlg::PValue(int nG, int nC, int nN, int nK)
{
	double Result = 1;
	CLargeNumber lnTemp1 = Combination( nG, nN );
	CLargeNumber lnTemp2;
	double doubleTemp1;
	int nTemp2 = 10000;
	CLargeNumber lnTemp3("10000");
	for( int i = 0; i < nK - 1; i++ )
	{
		m_ctrlProgress.StepIt();
		lnTemp2 = Combination( nC, i ) * Combination( nG - nC, nN - i );
		lnTemp2 *= lnTemp3;
		lnTemp2 /= lnTemp1 ;

		doubleTemp1 = atoi(lnTemp2.ToString().data());
		doubleTemp1 /= nTemp2;
		
		Result -= doubleTemp1;
	}
	return Result;
}

double CHypergeometricDlg::DPPValue(int nG, int nC, int nN, int nK)
{
	double Result = 1;
	CLargeNumber lnTemp1 = DPCombination( nG, nN );
	CLargeNumber lnTemp2;
	double doubleTemp1;
	int nTemp2 = 10000;
	CLargeNumber lnTemp3("10000");
	for( int i = 0; i < nK - 1; i++ )
	{
		m_ctrlProgress.StepIt();
		lnTemp2 = DPCombination( nC, i ) * DPCombination( nG - nC, nN - i );
		lnTemp2 *= lnTemp3;
		lnTemp2 /= lnTemp1 ;

		doubleTemp1 = atoi(lnTemp2.ToString().data());
		doubleTemp1 /= nTemp2;
		
		Result -= doubleTemp1;
	}
	return Result;
}

double CHypergeometricDlg::DPPValue2(int nG, int nC, int nN, int nK)
{
	double Result = 1;
	CLargeNumber lnTemp1 = DPCombination2( nG, nN );
	CLargeNumber lnTemp2;
	double doubleTemp1;
	int nTemp2 = 10000;
	CLargeNumber lnTemp3("10000");
	for( int i = 0; i < nK - 1; i++ )
	{
		m_ctrlProgress.StepIt();
		lnTemp2 = DPCombination2( nC, i ) * DPCombination2( nG - nC, nN - i );
		lnTemp2 *= lnTemp3;
		lnTemp2 /= lnTemp1 ;

		doubleTemp1 = atoi(lnTemp2.ToString().data());
		doubleTemp1 /= nTemp2;
		
		Result -= doubleTemp1;
	}
	return Result;
}

void CHypergeometricDlg::OnBtnCalculate() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	
	m_ctrlProgress.SetRange( 0, m_nK - 1 );
	m_ctrlProgress.SetPos(0);
	m_ctrlProgress.SetStep(1);
	DWORD dwStart = GetTickCount();
	m_doubeResult = PValue( m_nG, m_nC, m_nN, m_nK );
	DWORD dwEnd = GetTickCount();

	m_dwCalcTime = dwEnd - dwStart;

	UpdateData( FALSE );

	nFactorialFunctionCall = 0;
	nDPFactorialFunctionCall = 0;
	nDPFactorialFunctionCall2 = 0;
}

void CHypergeometricDlg::OnBtnDpcalculate() 
{
	UpdateData();
	
	m_ctrlProgress.SetRange( 0, m_nK - 1 );
	m_ctrlProgress.SetPos(0);
	m_ctrlProgress.SetStep(1);

	DWORD dwStart = GetTickCount();

	m_doubeResult = DPPValue( m_nG, m_nC, m_nN, m_nK );
	
	DWORD dwEnd = GetTickCount();
	
	m_dwCalcTime = dwEnd - dwStart;
	UpdateData( FALSE );	

	nFactorialFunctionCall = 0;
	nDPFactorialFunctionCall = 0;
	nDPFactorialFunctionCall2 = 0;
}

void CHypergeometricDlg::OnBtnDpcalculate2() 
{
	UpdateData();
	
	m_ctrlProgress.SetRange( 0, m_nK - 1 );
	m_ctrlProgress.SetPos(0);
	m_ctrlProgress.SetStep(1);
	
	DWORD dwStart = GetTickCount();
	
	m_doubeResult = DPPValue2( m_nG, m_nC, m_nN, m_nK );
	
	DWORD dwEnd = GetTickCount();
	
	m_dwCalcTime = dwEnd - dwStart;
	UpdateData( FALSE );

	nFactorialFunctionCall = 0;
	nDPFactorialFunctionCall = 0;
	nDPFactorialFunctionCall2 = 0;
}

void CHypergeometricDlg::OnBtnDpcalculate3() 
{
	UpdateData();
	m_ctrlProgress.SetRange( 0, m_nK - 1 );
	m_ctrlProgress.SetPos(0);
	m_ctrlProgress.SetStep(1);

	DWORD dwStart = GetTickCount();
	
	double doubleResult = 1.0;
	for( int i = 0 ; i < m_nK - 1; i++ )
	{
		HyperGeometricProbability hgp( m_nG, m_nN, i, m_nC );
		doubleResult -= hgp.GetResult();
	}
	m_doubeResult = doubleResult;

	DWORD dwEnd = GetTickCount();
	
	m_dwCalcTime = dwEnd - dwStart;
	UpdateData( FALSE );

	nFactorialFunctionCall = 0;
	nDPFactorialFunctionCall = 0;
	nDPFactorialFunctionCall2 = 0;
}

void CHypergeometricDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	for( int i = 0; i < m_vecMemFactorial.size(); i++ )
	{
		delete m_vecMemFactorial[i];
	}
	for( i = 0; i < m_vecMemFactorialTmp.size(); i++ )
	{
		delete m_vecMemFactorialTmp[i];
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产suv精品一区二区883| 国产jizzjizz一区二区| 99精品视频一区二区| 久久久亚洲精品石原莉奈| 日韩av高清在线观看| 欧美理论在线播放| 亚洲国产美女搞黄色| 91精品国产一区二区三区蜜臀 | 蜜桃精品视频在线| 91美女片黄在线观看| 欧美国产视频在线| 欧美日韩成人综合在线一区二区| 99久久精品情趣| 欧美日韩一区二区在线观看| 91国产福利在线| 亚洲精品v日韩精品| 91看片淫黄大片一级在线观看| 精品乱码亚洲一区二区不卡| 99视频一区二区三区| 国产一区福利在线| 中文字幕亚洲一区二区av在线| 国产一区二区精品在线观看| 欧美日韩成人在线| 综合久久一区二区三区| 国产高清无密码一区二区三区| 国产精品久久久久影院| 成人免费毛片片v| 香蕉加勒比综合久久| 日韩视频免费直播| 懂色中文一区二区在线播放| 经典三级在线一区| 蜜桃视频一区二区| 蜜臀va亚洲va欧美va天堂| 国产精品国产三级国产有无不卡| 337p亚洲精品色噜噜狠狠| 另类的小说在线视频另类成人小视频在线| 中文字幕成人av| 欧美日本国产一区| 国产·精品毛片| 国产永久精品大片wwwapp| 亚洲免费在线视频| 欧美午夜影院一区| 色欲综合视频天天天| 日韩欧美国产麻豆| 国产一区二区三区免费| 国产精品免费av| 99久久综合狠狠综合久久| 亚洲国产一区视频| 日韩欧美中文字幕制服| 成人av网在线| 日韩高清不卡一区二区| 亚洲精品在线免费播放| 91蜜桃网址入口| 国产一区二区三区免费看 | 精品人伦一区二区色婷婷| www.视频一区| 在线免费观看日本一区| 日本韩国视频一区二区| 91成人国产精品| 91在线国产福利| 一区二区三区色| 亚洲成a人片综合在线| 五月天激情综合网| 精品一区二区成人精品| 国产成人一区二区精品非洲| 成人av电影在线| 色综合一个色综合| 欧美欧美欧美欧美| 欧美电影免费观看完整版| 国产婷婷精品av在线| ...xxx性欧美| 日韩高清不卡一区二区三区| 国产98色在线|日韩| 91黄色激情网站| 精品国产露脸精彩对白| 中文字幕一区二区三区视频| 亚洲一区影音先锋| 久草中文综合在线| 91亚洲精品久久久蜜桃网站 | 亚洲精品网站在线观看| 亚洲一级电影视频| 精品一区二区三区在线播放| 91丨porny丨国产入口| 欧美午夜精品一区| 久久众筹精品私拍模特| 亚洲欧美色综合| 久久精品国产一区二区三 | 国产成人免费在线视频| 在线观看av一区二区| 亚洲精品一区二区三区蜜桃下载 | 亚洲在线成人精品| 精品一区二区在线视频| 91麻豆精品在线观看| 亚洲精品一线二线三线无人区| 成人欧美一区二区三区视频网页| 日韩精品一卡二卡三卡四卡无卡| 豆国产96在线|亚洲| 91精品欧美综合在线观看最新| 国产精品久久久久三级| 日本不卡中文字幕| 色综合视频一区二区三区高清| 精品欧美久久久| 亚洲自拍偷拍麻豆| av中文字幕一区| 久久久不卡影院| 水蜜桃久久夜色精品一区的特点 | 久久99在线观看| 欧美丝袜丝交足nylons| 国产精品欧美经典| 国产资源在线一区| 欧美高清你懂得| 一区二区三区在线观看网站| 国产精品影视天天线| 日韩亚洲欧美综合| 五月综合激情网| 欧美色欧美亚洲另类二区| 自拍偷拍国产亚洲| 成人动漫精品一区二区| 国产亚洲欧美日韩俺去了| 久久精品免费观看| 91精品国产福利| 三级久久三级久久久| 欧美午夜精品免费| 亚洲一区二区四区蜜桃| 一本大道久久a久久精二百| 中文字幕的久久| 成人免费黄色在线| 国产午夜精品一区二区三区嫩草| 久久精品噜噜噜成人88aⅴ| 欧美一二三四在线| 日韩成人午夜精品| 91 com成人网| 免费人成在线不卡| 欧美一区二区三区免费观看视频| 亚洲第一搞黄网站| 欧美日韩视频一区二区| 亚洲午夜激情av| 欧美性色aⅴ视频一区日韩精品| 一区二区三区在线免费观看| 色系网站成人免费| 亚洲精品视频免费看| 91麻豆精东视频| 国产美女娇喘av呻吟久久| 欧美videos大乳护士334| 美女视频免费一区| 久久久电影一区二区三区| 成人中文字幕电影| 国产精品久久久久久户外露出 | 国产一区在线精品| 国产片一区二区| 91在线精品一区二区| 亚洲欧美色综合| 欧美蜜桃一区二区三区| 毛片基地黄久久久久久天堂| 久久伊人蜜桃av一区二区| 成人性生交大片免费看中文| 亚洲视频中文字幕| 欧美日本乱大交xxxxx| 精品一区二区三区视频在线观看| 久久嫩草精品久久久精品一| av在线不卡电影| 午夜亚洲福利老司机| 精品欧美一区二区三区精品久久| 国产伦精一区二区三区| 国产精品女同一区二区三区| 欧美伊人精品成人久久综合97 | 蜜臀精品一区二区三区在线观看 | 日本福利一区二区| 蜜臀久久久99精品久久久久久| 国产婷婷精品av在线| 日本久久一区二区三区| 裸体在线国模精品偷拍| 国产亚洲精品bt天堂精选| 91视频你懂的| 久久久一区二区三区捆绑**| 一本久道中文字幕精品亚洲嫩| 午夜视频久久久久久| 欧美一级黄色大片| 成人av资源站| 日本午夜精品一区二区三区电影| 欧美成人女星排名| 99视频国产精品| 亚洲成人久久影院| 久久精品一区二区三区不卡| 国产成人免费视频| 亚洲黄色片在线观看| 亚洲精品在线电影| 91视频91自| 国产麻豆精品视频| 亚洲午夜一二三区视频| 欧美一区二区三区色| 91农村精品一区二区在线| 亚洲电影中文字幕在线观看| 国产亚洲一二三区| 在线电影院国产精品| 国产福利一区二区三区在线视频| 亚洲成人777| 中文字幕av一区二区三区高| 91精品综合久久久久久| 99精品1区2区|