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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testview.cpp

?? 人工神經網絡最經典的BP算法
?? CPP
字號:
// testView.cpp : implementation of the CTestView class
//

#include "stdafx.h"
#include "test.h"

#include "testDoc.h"
#include "testView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTestView

IMPLEMENT_DYNCREATE(CTestView, CView)

BEGIN_MESSAGE_MAP(CTestView, CView)
	//{{AFX_MSG_MAP(CTestView)
	ON_COMMAND(ID_MENU_DISP, OnMenuDisp)
	ON_WM_KEYDOWN()
	ON_UPDATE_COMMAND_UI(ID_MENU_LEARN, OnUpdateMenuLearn)
	ON_UPDATE_COMMAND_UI(ID_MENU_DISP, OnUpdateMenuDisp)
	ON_UPDATE_COMMAND_UI(ID_MENU_TEST, OnUpdateMenuTest)
	ON_COMMAND(ID_MENU_SHOW, OnMenuShow)
	ON_UPDATE_COMMAND_UI(ID_MENU_SHOW, OnUpdateMenuShow)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestView construction/destruction

CTestView::CTestView()
{
	// TODO: add construction code here
}

CTestView::~CTestView()
{
}

BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CTestView drawing

void CTestView::OnDraw(CDC* pDC)
{
	CTestDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CRect rect;
	GetClientRect(&rect);

	int dm = pDoc->dispmode;
	if (dm ==1)
	{
		TEXTMETRIC tm;
		pDC->GetTextMetrics(&tm);
		double error = pDoc->max_error_tollerance;
		int ptn = pDoc->selpattern;
		TRACE("\nPTN=%d\n",ptn);
		int outnum = pDoc->output_array_size;
		int innum = pDoc->input_array_size;
		TRACE("\ninnum=%d\n",innum);
		int nLineHeight = tm.tmHeight + tm.tmExternalLeading;
		CString str1,str2;
		CPoint pText(0,0);

		str1.Format("輸入:");
		for (int y=0; y<innum; y++)
		{
			str2.Format("%f ",pDoc->input[ptn][y]);
			TRACE("pDoc->input[%d][%d]=%.0f\n",ptn,y,pDoc->input[ptn][y]);
			str1 += str2;
		}
		pDC->TextOut(pText.x,pText.y,str1);
		pText.y += nLineHeight;

		for (int i=0; i<outnum; i++)
		{
		/*	if ((1-pDoc->output[ptn][i])<error)
			{
				bin = 1;
			}
			else
			{
				if (pDoc->output[ptn][i]<error)
				{
					bin = 0;
				}
				else
				{
					bin = -1;
				}
		}*/
			str2.Format("輸出:%f  實際值:%f",pDoc->output[ptn][i],pDoc->target[ptn][i]);
			pDC->TextOut(pText.x, pText.y+i*nLineHeight,str2);
		}
	}
	if (dm == 2)
	{
		pDC->DrawText("Learning... (Press a key will stop it!)",-1,&rect,
						DT_SINGLELINE|DT_CENTER|DT_VCENTER);
	}
	if (dm == 0)
	{
		pDC->DrawText("",-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
	}
	
}

/////////////////////////////////////////////////////////////////////////////
// CTestView printing

BOOL CTestView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CTestView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CTestView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CTestView diagnostics

#ifdef _DEBUG
void CTestView::AssertValid() const
{
	CView::AssertValid();
}

void CTestView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CTestDoc* CTestView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
	return (CTestDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTestView message handlers

void CTestView::OnMenuDisp() 
{
	// TODO: Add your command handler code here
	//CTestDoc* pDoc = GetDocument();
	//ASSERT_VALID(pDoc);

    double min = 0,
		   max = 0, 
		   delta = 0;
	int num = 0;

	ifstream in(BIASNUM_FILE);
	if (!in)
	{
		::AfxMessageBox("Fail to load file");
		return;
	}

	in >> num;
	in.close();

	ifstream in_e(BIAS_FILE);
	if (!in_e)
	{
		::AfxMessageBox("Fail to load file");
		return;
	}
	double *e_value = new double [num];
	for (int i=0;i<num;i++)
	{
		in_e >> e_value[i];
		if (e_value[i] > max) max = e_value[i];
	}
	min = e_value[num-1];
	delta = max-min;
	in_e.close();
	
	for (i=0;i<num;i++)
	{
		e_value[i] = (e_value[i]-min)/delta;
	}
	CClientDC dc(this);
	CRect rect;
	GetClientRect(&rect);
	int nWidth = rect.Width();
	int nHeight = rect.Height();
	int space_h = 100, space_w = 0;
	int div = nWidth / nHeight;
	space_w = space_h * div;
    rect.DeflateRect(space_w,space_h);
	nWidth = rect.Width();
	nHeight = rect.Height();

	int intvl_h = rect.Height()/5;
	int intvl_w = rect.Width()/50;
	
	CPen pen1(PS_DOT,1,RGB(128,128,128)),pen2(PS_SOLID,1,RGB(255,0,0));
	CPen *pOldPen = dc.SelectObject(&pen1);

	dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);

	for (i=0; i<50; i++)
	{
		dc.MoveTo(rect.left+i*intvl_w, rect.top);
		dc.LineTo(rect.left+i*intvl_w, rect.bottom);
	}
	for (i=0; i<5; i++)
	{
		dc.MoveTo(rect.left, rect.top+i*intvl_h);
		dc.LineTo(rect.right, rect.top+i*intvl_h);
	}
	
	dc.SelectObject(&pen2);
	
	CPoint *aPoint = new CPoint [num];
	if(!aPoint)::AfxMessageBox("Memory error");
	for (i=0;i<num;i++)
	{
		aPoint[i].x = (i*nWidth)/num;
		aPoint[i].y = (int)(-e_value[i]*nHeight);
	}
	
	dc.SetViewportOrg(rect.left, rect.bottom);
	dc.Polyline(aPoint, num);
	dc.SelectObject(pOldPen);

	delete [] e_value;
	delete [] aPoint;

}

void CTestView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	CTestDoc *pDoc = GetDocument();
	pDoc->notkeyhit = FALSE;
	CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CTestView::OnUpdateMenuLearn(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CTestDoc *pDoc = GetDocument();
	pCmdUI->Enable(pDoc->can_learn);
}

void CTestView::OnUpdateMenuDisp(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CTestDoc *pDoc = GetDocument();
	pCmdUI->Enable(pDoc->data_learned);
	//pCmdUI->Enable(true);
}

void CTestView::OnUpdateMenuTest(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CTestDoc *pDoc = GetDocument();
	pCmdUI->Enable(pDoc->data_learned);
}

void CTestView::OnMenuShow() 
{
	// TODO: Add your command handler code here
	double min = 0,
		   max = 0, 
		   delta = 0;
	int num = 1000;

//----------------forword_pass() begin---------------------------
    CTestDoc * pDoc = GetDocument();
	double  inputTemp,
		   
		    outputTemp;
	
	/*inputTemp = new double  [num];
	
	hiddenTemp = new double  [pDoc->hidden_array_size];
	

	outputTemp = new double  [num];*/
	
	


	CClientDC dc(this);
	CRect rect;
	GetClientRect(&rect);
	int nWidth = rect.Width();
	int nHeight = rect.Height();
	int space_h = 100, space_w = 0;
	int div = nWidth / nHeight;
	space_w = space_h * div;
    rect.DeflateRect(space_w,space_h);
	nWidth = rect.Width();
	nHeight = rect.Height();

	int intvl_h = rect.Height()/5;
	int intvl_w = rect.Width()/50;
	
	CPen pen1(PS_DOT,1,RGB(128,128,128)),pen2(PS_SOLID,1,RGB(255,0,0));
	CPen *pOldPen = dc.SelectObject(&pen1);

	dc.Rectangle(rect.left,rect.top,rect.right,rect.bottom);

	for (int i=0; i<50; i++)
	{
		dc.MoveTo(rect.left+i*intvl_w, rect.top);
		dc.LineTo(rect.left+i*intvl_w, rect.bottom);
	}
	for (i=0; i<5; i++)
	{
		dc.MoveTo(rect.left, rect.top+i*intvl_h);
		dc.LineTo(rect.right, rect.top+i*intvl_h);
	}
	
	dc.SelectObject(&pen2);
	CPoint *aPoint = new CPoint [num];
	if(!aPoint)::AfxMessageBox("Memory error");
	double pi=3.1415926535897932;
	for (i=0;i<num;i++)
	{
		aPoint[i].x = (i*nWidth)/num;
		aPoint[i].y = (int)(-(nWidth/pi)*sin((i*pi)/num));
	}
	
	dc.SetViewportOrg(rect.left, rect.bottom);
	dc.Polyline(aPoint, num);
    
	CPen pen3(PS_SOLID,1,RGB(0,0,255));
	dc.SelectObject(&pen3);
	
	for (i=0;i<num;i++)
	{
		inputTemp=(i*pi)/num;
    	outputTemp=usingnet(inputTemp);
		aPoint[i].x = (i*nWidth)/num;
		aPoint[i].y = (int)(-(nWidth/pi)*outputTemp);
	}
	dc.SetViewportOrg(rect.left, rect.bottom);
	dc.Polyline(aPoint, num);

	dc.SelectObject(pOldPen);

	//delete [] e_value;
	delete [] aPoint;
//-------------clear memery----------------
   /* TEXTMETRIC tm;
	pDC->GetTextMetrics(&tm);
	int nLineHeight = tm.tmHeight + tm.tmExternalLeading;
	CString str1,str2;
	CPoint pText(0,500);
	str1.Format("紅線是實際sin函數");
	str2.Format("藍線是擬合的sin函數");
    pDC->TextOut(pText.x,pText.y,str1);
	pDC->TextOut(pText.x,pText.y+nLineHeight,str2);
	*/
	

	
	
}

void CTestView::OnUpdateMenuShow(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	CTestDoc *pDoc = GetDocument();
	pCmdUI->Enable(pDoc->data_learned);
	//pCmdUI->Enable(true);
}

double CTestView::usingnet(double input)//由神經網絡返回sin()函數的值
{
	CTestDoc * pDoc = GetDocument();
    _control87 (MCW_EM, MCW_EM);
	register double temp=0;
    register int x,y;
	double  hiddenTemp[15],
		   outputTemp;
//	hiddenTemp=new double [pDoc->hidden_array_size];
// INPUT -> HIDDEN
	for(y=0; y<pDoc->hidden_array_size; y++) {
		for(x=0; x<pDoc->input_array_size; x++) {
			temp += (input * pDoc->weight_i_h[x][y]); //∑Wi*Xi
		}
		hiddenTemp[y] = (1.0 / (1.0 + exp(-1.0 * (temp + pDoc->bias[y]))));//1/(1+e^(-uj)); uj=∑Wi*Xi - θj
		temp = 0;                                                //各隱層結點的輸出
	}
// HIDDEN -> OUTPUT
	for(y=0; y<pDoc->output_array_size; y++) {	//有output_array_size個輸出結點
		for(x=0; x<pDoc->hidden_array_size; x++) {
			temp += (hiddenTemp[x] * pDoc->weight_h_o[x][y]);
		}
		outputTemp = (1.0 / (1.0 + exp(-1.0 * (temp + pDoc->bias[y + pDoc->hidden_array_size]))));
		temp = 0;
	}
	
//	delete [] hiddenTemp;
	return outputTemp;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线影院一区二区| va亚洲va日韩不卡在线观看| 精品美女一区二区三区| 欧美精品视频www在线观看| 欧美午夜电影在线播放| 欧美日韩亚洲另类| 欧美大片一区二区三区| 亚洲精品在线网站| 中文字幕一区二区三区四区不卡 | 五月激情六月综合| 国产精品九色蝌蚪自拍| 一区二区三区在线视频观看| 亚洲制服丝袜一区| 国产一区二区福利| av资源站一区| 欧美成va人片在线观看| 亚洲三级在线播放| 国产高清不卡一区二区| 一本大道av一区二区在线播放| 欧美日韩精品福利| 亚洲视频一区在线观看| 麻豆精品一区二区av白丝在线| 国产成人av一区| 日韩精品综合一本久道在线视频| 欧美韩国一区二区| 麻豆91在线观看| 欧美综合色免费| 中文字幕日韩一区| 国产永久精品大片wwwapp| 51精品视频一区二区三区| 亚洲一区免费视频| 91免费看视频| 亚洲欧美日韩国产中文在线| 国产乱码精品一区二区三| 日韩三级中文字幕| 美女性感视频久久| 日韩视频在线观看一区二区| 亚洲一卡二卡三卡四卡无卡久久| 丁香一区二区三区| 欧美国产精品中文字幕| 国产高清无密码一区二区三区| 日韩一区二区三区视频在线| 婷婷综合另类小说色区| 欧美一区二区日韩一区二区| 亚洲成人在线观看视频| 51精品久久久久久久蜜臀| 午夜日韩在线电影| 精品少妇一区二区三区在线播放 | 亚洲精品一线二线三线无人区| 亚洲va韩国va欧美va| 制服丝袜成人动漫| 韩国三级在线一区| 亚洲人成在线播放网站岛国| 一本久道中文字幕精品亚洲嫩| 亚洲午夜精品17c| 欧美一级高清片在线观看| 国产精选一区二区三区| 综合电影一区二区三区 | 蜜乳av一区二区| 欧美经典一区二区三区| 欧美日韩美女一区二区| 狠狠狠色丁香婷婷综合激情 | 国产成人精品一区二区三区四区 | 国产女人水真多18毛片18精品视频| 国产精品系列在线观看| 亚洲成人免费观看| 日本一区二区三区四区| 51午夜精品国产| 色综合一区二区| 韩国欧美国产1区| 爽好多水快深点欧美视频| 亚洲欧洲无码一区二区三区| 欧美一区二区视频在线观看| 99精品欧美一区二区三区小说| 麻豆成人免费电影| 亚洲国产欧美另类丝袜| 国产精品伦理一区二区| 欧美大片在线观看| 日韩欧美一区在线观看| 欧美日韩成人综合在线一区二区| 成人中文字幕电影| www.av亚洲| 97成人超碰视| 99久免费精品视频在线观看| 国产成人精品午夜视频免费| 久久精品国产一区二区三区免费看 | 日韩一区二区三区在线视频| 欧美午夜精品免费| 7777女厕盗摄久久久| 337p亚洲精品色噜噜噜| 777欧美精品| 欧美精品一区二区三区四区 | 久国产精品韩国三级视频| 久久99在线观看| 久久91精品国产91久久小草 | 欧美一级国产精品| 日韩久久久久久| 中文字幕亚洲精品在线观看| 综合激情成人伊人| 青青草91视频| 成人av网站免费观看| 欧美最新大片在线看| 日韩女优av电影在线观看| 欧美激情一区三区| 五月天激情综合| 高清国产一区二区三区| 欧美在线一区二区| 国产精品视频一二| 免费成人结看片| 欧美色大人视频| 中文字幕巨乱亚洲| 国产一区二三区好的| 欧美日韩黄色一区二区| 国产精品久久久久久久久动漫 | 色94色欧美sute亚洲线路一久| 欧美老年两性高潮| 亚洲婷婷国产精品电影人久久| 日韩电影免费在线观看网站| 白白色亚洲国产精品| 精品国产区一区| 欧美aaa在线| 欧美精品乱码久久久久久按摩| 国产精品久久国产精麻豆99网站| 亚洲一区自拍偷拍| 91蝌蚪porny成人天涯| 国产精品视频你懂的| 国产毛片精品视频| 日韩欧美中文字幕一区| 日本vs亚洲vs韩国一区三区 | 日韩码欧中文字| 91一区一区三区| 一区二区三区四区精品在线视频| 国产一区二区美女| 欧美国产日韩一二三区| 91丨porny丨户外露出| 综合激情网...| 欧美日本一区二区| 麻豆91在线播放| 国产婷婷色一区二区三区四区 | 久久久无码精品亚洲日韩按摩| 麻豆国产91在线播放| 2020国产成人综合网| www.爱久久.com| 首页亚洲欧美制服丝腿| 久久只精品国产| 一本大道久久a久久综合婷婷| 《视频一区视频二区| 91麻豆精品国产91久久久| 国内精品免费**视频| 国产精品久久久久久久久图文区 | 亚洲国产精品精华液2区45| av男人天堂一区| 首页欧美精品中文字幕| 国产日韩精品一区二区三区在线| 91热门视频在线观看| 久久99国产精品麻豆| 一区二区三区精品| 日本一二三四高清不卡| 日韩欧美的一区二区| 91电影在线观看| 国产不卡在线播放| 秋霞av亚洲一区二区三| 亚洲欧美电影一区二区| 久久综合狠狠综合久久激情| 欧美色大人视频| 91行情网站电视在线观看高清版| 国产中文字幕精品| 久久精品国产亚洲5555| 亚洲主播在线播放| 亚洲欧美色一区| 一区二区三区**美女毛片| 欧美激情一区二区三区四区| 久久久精品黄色| 久久久国产精华| 国产精品网友自拍| 欧美激情资源网| 国产精品视频观看| 亚洲日本在线a| 亚洲综合色噜噜狠狠| 一区二区三区美女视频| 亚洲一区二区三区四区五区中文| 国产精品视频第一区| 中文字幕第一区第二区| 亚洲日本一区二区三区| 亚洲精品一二三| 日韩av中文在线观看| 久久精品国产久精国产爱| 国产一区三区三区| 99久久婷婷国产| 欧美男同性恋视频网站| 精品成人一区二区三区四区| 亚洲国产高清aⅴ视频| 亚洲国产欧美一区二区三区丁香婷 | 亚洲精品国产成人久久av盗摄| 亚洲一区二区欧美激情| 国产一区二区三区美女| 91久久精品网| 国产清纯白嫩初高生在线观看91 | 久久综合狠狠综合久久激情| 1000部国产精品成人观看|