參考課堂迷宮問題的解題方法,建立move數組,若馬當前位置是(x,y),則沿著第i(1<=i<=8)個方向跳一步,到達新的位置為( x’,y’),下表位置可以根據 move 數組來確定,有: x’=x+move[i][0] y’=y+move[i][1]. 馬走過的信息的 用結構體來存儲。move數組用于存儲馬可以走過的方向,將開始的馬的位置的信息存入隊列,馬沿著8個方向跳動,在馬跳動過程中,將馬的跳動步數加1,如果馬沒有走到邊界,判斷馬有沒有在走同樣的步數到同一個節點。如果馬沒有在同樣的步數到同一個節點,則將這個節點的信息存入隊列的對尾。在解題中,使用順序隊列來記錄馬到達的位置。使用隊首指針來記錄對首元素。將馬走過的位置的信息存入隊列中,當該節點走完8個方向時,就將該節點從對列中刪除掉。直到走的步數為指定的步數時結束。
標簽: 迷宮
上傳時間: 2013-12-12
上傳用戶:cooran
不太常用的SPI I/O口擴展芯片的驅動程序和中文數據手冊,對想用SPI擴張I/O口的朋友非常有用的
上傳時間: 2013-12-18
上傳用戶:lht618
探討了在 Mh T I AB環境中實現遺傳算法仿真 的方法 , 并 以一個 簡單的求函數最值的問 題作為遺傳算法的應用實鍘, 說明遺傳算法的全局尋優性及用 M AI I AB實現仿真的可行性。
上傳時間: 2014-08-19
上傳用戶:牛津鞋
實驗源代碼 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數 i: "); scanf("%d",&k); 四川大學實驗報告 printf("請輸入矩陣的列數 j: "); scanf("%d",&n); warshall(k,n); }
上傳時間: 2016-06-27
上傳用戶:梁雪文以
#include "iostream" using namespace std; class Matrix { private: double** A; //矩陣A double *b; //向量b public: int size; Matrix(int ); ~Matrix(); friend double* Dooli(Matrix& ); void Input(); void Disp(); }; Matrix::Matrix(int x) { size=x; //為向量b分配空間并初始化為0 b=new double [x]; for(int j=0;j<x;j++) b[j]=0; //為向量A分配空間并初始化為0 A=new double* [x]; for(int i=0;i<x;i++) A[i]=new double [x]; for(int m=0;m<x;m++) for(int n=0;n<x;n++) A[m][n]=0; } Matrix::~Matrix() { cout<<"正在析構中~~~~"<<endl; delete b; for(int i=0;i<size;i++) delete A[i]; delete A; } void Matrix::Disp() { for(int i=0;i<size;i++) { for(int j=0;j<size;j++) cout<<A[i][j]<<" "; cout<<endl; } } void Matrix::Input() { cout<<"請輸入A:"<<endl; for(int i=0;i<size;i++) for(int j=0;j<size;j++){ cout<<"第"<<i+1<<"行"<<"第"<<j+1<<"列:"<<endl; cin>>A[i][j]; } cout<<"請輸入b:"<<endl; for(int j=0;j<size;j++){ cout<<"第"<<j+1<<"個:"<<endl; cin>>b[j]; } } double* Dooli(Matrix& A) { double *Xn=new double [A.size]; Matrix L(A.size),U(A.size); //分別求得U,L的第一行與第一列 for(int i=0;i<A.size;i++) U.A[0][i]=A.A[0][i]; for(int j=1;j<A.size;j++) L.A[j][0]=A.A[j][0]/U.A[0][0]; //分別求得U,L的第r行,第r列 double temp1=0,temp2=0; for(int r=1;r<A.size;r++){ //U for(int i=r;i<A.size;i++){ for(int k=0;k<r-1;k++) temp1=temp1+L.A[r][k]*U.A[k][i]; U.A[r][i]=A.A[r][i]-temp1; } //L for(int i=r+1;i<A.size;i++){ for(int k=0;k<r-1;k++) temp2=temp2+L.A[i][k]*U.A[k][r]; L.A[i][r]=(A.A[i][r]-temp2)/U.A[r][r]; } } cout<<"計算U得:"<<endl; U.Disp(); cout<<"計算L的:"<<endl; L.Disp(); double *Y=new double [A.size]; Y[0]=A.b[0]; for(int i=1;i<A.size;i++ ){ double temp3=0; for(int k=0;k<i-1;k++) temp3=temp3+L.A[i][k]*Y[k]; Y[i]=A.b[i]-temp3; } Xn[A.size-1]=Y[A.size-1]/U.A[A.size-1][A.size-1]; for(int i=A.size-1;i>=0;i--){ double temp4=0; for(int k=i+1;k<A.size;k++) temp4=temp4+U.A[i][k]*Xn[k]; Xn[i]=(Y[i]-temp4)/U.A[i][i]; } return Xn; } int main() { Matrix B(4); B.Input(); double *X; X=Dooli(B); cout<<"~~~~解得:"<<endl; for(int i=0;i<B.size;i++) cout<<"X["<<i<<"]:"<<X[i]<<" "; cout<<endl<<"呵呵呵呵呵"; return 0; }
標簽: 道理特分解法
上傳時間: 2018-05-20
上傳用戶:Aa123456789
步驟一 按快捷鍵Ctrl+N新建A4大小空白橫向文檔,并填充顏色為淺綠色。 步驟二 選擇工具箱中的“貝塞爾工具”繪制荷葉,使用“形狀工具”進行節點調整。填充輪廓色和填充色。 步驟三 在工具箱中選擇“網狀填充工具”設置網格中的行列數為3*3,鼠標框選中間4個節點,統一填充顏色為(R:0,G:153,B:51)。 步驟四 選擇“貝塞爾工具”繪制荷葉葉脈,由于所畫線條是不連接的單一曲線,所以繪制時可以借助鍵盤上的“空格”鍵來進行切換。 步驟五 接著利用“貝塞爾工具”依照前面的方法繪制出不同形態的葉子并Ctrl+G群組。 步驟六 用“貝塞爾工具”繪制荷葉莖部,按F12鍵調整曲線寬度為3,自定義顏色值為(C:70,M:0,Y:100,K:0),然后執行“對象”→“將輪廓轉換為對象”命令,再次按F12鍵添加寬度為細線的(C:78,M:19,Y:76,K:0)的顏色值,調整順序到后層。 步驟七 選擇一片群組合過的葉子,進行位圖模糊處理,放在畫面后面,達到近實遠虛的視覺效果。 步驟八 選擇“貝塞爾工具”繪制花瓣,借助網狀填充工具填充粉色到洋紅色,按Ctrl鍵繪制一個正圓,按F12把圓加粗,然后執行“對象”→“將輪廓轉換為對象”命令(Ctrl+Shift+Q)。 步驟九 繪制各種形態的荷花造型,并群組圖形。
上傳時間: 2018-08-03
上傳用戶:cjmktt
水位計廣泛應用于水利、石油、化工、冶金、電力等領域的自動檢測和控制系統中.本文設計的智能水位計是吸收了國內外最新智能化儀表的設計經驗,采用工業控制單片機,集水位采集、存儲、顯示及遠程聯網于一體,適用于各種液位及閘門開度的測量.它具有高精度、高可靠性、多功能和智能化等特點.針對研制任務的要求,課題期間研制了下位機系統硬件和軟件,開發了上位機監控軟件,其中所作的具體工作包括:測量原理的研究和在系統中的實現,在本次設計中用三種方法來進行水位測量,分別是旋轉編碼器法、液位壓力傳感器法和可變電阻器法;主控芯片的選擇,我們選用了高集成度的混合信號系統級芯片C8051F021;實現了信號的采集和處理,包括信號的轉換和在單片機內的運算;高集成度16位模數轉換芯片AD7705在系統中的應用,我們完成了它與單片機的接口設計及程序編制任務;精確時鐘芯片DS1302在系統中的應用,在此,我們實現了用單片機的I/O口與DS1302的連接和在軟件中對時序的模擬,該芯片的應用給整臺儀器提供了時間基準,方便了儀器的使用;另外,針對研制任務的要求,還給系統加上了一路4~20mA模擬信號電流環的輸出電路來提供系統監測,該部分的實現是通過采用AD421芯片來完成的,本設計中完成了AD421與單片機的SPI接口任務,協調了它與AD7705芯片和單片機共同構成的SPI總線系統的關系,并完成了程序設計;與上位機的通信接口設計,該部分通過兩種方法實現:RS232通信方式和RS485通信方式;系統設計方面還包括報警電路設計、操作鍵盤設計、電源監控電路設計、電壓基準電路的設計.在硬件設計的基礎上,對系統進行了軟件設計,軟件部分包括下位機單片機程序的設計和上位機監控軟件的設計.在軟硬件充分結合的情況下,實現了系統設計要求,很好地解決了以往的水位計中存在的問題,達到了高精度水位測量儀器的各項標準.
標簽: 水位計
上傳時間: 2013-06-20
上傳用戶:libenshu01
永磁無刷直流電動機具有慣量小、控制簡單、動態性能好等優良特性,因此在航天、機器人、數控機床等許多領域得到了廣泛應用。無刷直流電機在國外已經成功應用于對系統要求較高的場合,近年來在國內也引起了廣泛的興趣。本課題針對輪式機器人,設計了無刷直流電動機并設計相應控制系統。 首先,本課題分析了機器人用無刷直流電動機的組成結構、繞組連接,并對三相無刷直流電動機星角接工作方式進行比較,按照無刷直流電動機兩種模式運行、多極分數槽等特點進行局部設計。最終以爬坡時狀態為參考,經過多次計算得到無刷直流電動機的初始設計方案。 其次,為了提高設計的可靠性及設計成本,本課題用MaxwellRMxprt和Maxwell 2D有限元分析軟件來對所設計的電磁設計方案進行驗證。應用Maxwell 2D軟件進一步對設計方案進行分析和校驗,以校核仿真結果參數能否與設計方案相吻合。 最后設計了無刷直流電動機的PIC單片機控制系統并對無刷直流電動機進行系統仿真。控制系統CPU采用PIC16F877單片機,它能夠提供最佳的性能價格比。系統采用IGBT 專用柵極驅動集成電路IR2130,來控制系統主電路。系統仿真采用MATLAB/SIMULINK軟件,檢驗所設計電機在系統中的性能。 結論,本課題主要包括五部分:無刷直流電動機繞組連接分析,初始數據方案設計,Maxwell對電磁設計方案進行驗證,設計PIC單片機控制系統,應用MATLAB對電機控制系統進行仿真。通過這五部,本文完成了輪式機器人用無刷直流電動機進行設計及相應控制系統的設計。
上傳時間: 2013-07-28
上傳用戶:long14578
緒論 3線性及邏輯器件新產品優先性計算領域4PCI Express®多路復用技術USB、局域網、視頻多路復用技術I2C I/O擴展及LED驅動器RS-232串行接口靜電放電(ESD)保護服務器/存儲10GTL/GTL+至LVTTL轉換PCI Express信號開關多路復用I2C及SMBus接口RS-232接口靜電放電保護消費醫療16電源管理信號調節I2C總線輸入/輸出擴展電平轉換靜電放電保護 手持設備22電平轉換音頻信號路由I2C基帶輸入/輸出擴展可配置小邏輯器件靜電放電保護鍵區控制娛樂燈光顯示USB接口工業自動化31接口——RS-232、USB、RS-485/422繼電器及電機控制保持及控制:I2C I/O擴展信號調節便攜式工業(掌上電腦/掃描儀) 36多路復用USB外設卡接口接口—RS-232、USB、RS-485/422I2C控制靜電放電保護 對于任意外部接口連接器的端口來說,靜電放電的沖擊一直是對器件可靠性的威脅。許多低電壓核心芯片或系統級的特定用途集成電路(ASIC)提供了器件級的人體模型(HBM)靜電放電保護,但無法應付系統級的靜電放電。一個卓越的靜電放電解決方案應該是一個節省空間且經濟高效的解決方案,可保護系統的相互連接免受外部靜電放電的沖擊。
上傳時間: 2013-10-18
上傳用戶:mikesering
印制板用硬質合金鉆頭通用規范 本規范規定了制造印制板用的硬質合金麻花鉆頭的術語及技術要求。
上傳時間: 2014-12-24
上傳用戶:BIBI