哈夫曼樹又稱最優二叉樹,是一種帶權路徑長度最短的二叉樹。所謂樹的帶權路徑長度,就是樹中所有的葉結點的權值乘上其到根結點的路徑長度(若根結點為0層,葉結點到根結點的路徑長度為葉結點的層數)。樹的帶權路徑長度記為WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N個權值Wi(i=1,2,...n)構成一棵有N個葉結點的二叉樹,相應的葉結點的路徑長度為Li(i=1,2,...n)??梢宰C明哈夫曼樹的WPL是最小的。
上傳時間: 2017-06-09
上傳用戶:wang5829
介紹回歸問題中高斯過程的應用,C. E. Rasmussen & C. K. I. Williams, Gaussian Processes for Machine Learning,
上傳時間: 2017-07-25
上傳用戶:skfreeman
批處理感知器算法的代碼matlab w1=[1,0.1,1.1;1,6.8,7.1;1,-3.5,-4.1;1,2.0,2.7;1,4.1,2.8;1,3.1,5.0;1,-0.8,-1.3; 1,0.9,1.2;1,5.0,6.4;1,3.9,4.0]; w2=[1,7.1,4.2;1,-1.4,-4.3;1,4.5,0.0;1,6.3,1.6;1,4.2,1.9;1,1.4,-3.2;1,2.4,-4.0; 1,2.5,-6.1;1,8.4,3.7;1,4.1,-2.2]; w3=[1,-3.0,-2.9;1,0.5,8.7;1,2.9,2.1;1,-0.1,5.2;1,-4.0,2.2;1,-1.3,3.7;1,-3.4,6.2; 1,-4.1,3.4;1,-5.1,1.6;1,1.9,5.1]; figure; plot(w3(:,2),w3(:,3),'ro'); hold on; plot(w2(:,2),w2(:,3),'b+'); W=[w2;-w3];%增廣樣本規范化 a=[0,0,0]; k=0;%記錄步數 n=1; y=zeros(size(W,2),1);%記錄錯分的樣本 while any(y<=0) k=k+1; y=a*transpose(W);%記錄錯分的樣本 a=a+sum(W(find(y<=0),:));%更新a if k >= 250 break end end if k<250 disp(['a為:',num2str(a)]) disp(['k為:',num2str(k)]) else disp(['在250步以內沒有收斂,終止']) end %判決面:x2=-a2*x1/a3-a1/a3 xmin=min(min(w1(:,2)),min(w2(:,2))); xmax=max(max(w1(:,2)),max(w2(:,2))); x=xmin-1:xmax+1;%(xmax-xmin): y=-a(2)*x/a(3)-a(1)/a(3); plot(x,y)
上傳時間: 2016-11-07
上傳用戶:a1241314660
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*運動員*/ { char name[20]; int score; /*分數*/ int range; /**/ int item; /*項目*/ }ATH; typedef struct schoolstruct /*學校*/ { int count; /*編號*/ int serial; /**/ int menscore; /*男選手分數*/ int womenscore; /*女選手分數*/ int totalscore; /*總分*/ ATH athlete[MaxSize]; /**/ struct schoolstruct *next; }SCH; int nsc,msp,wsp; int ntsp; int i,j; int overgame; int serial,range; int n; SCH *head,*pfirst,*psecond; int *phead=NULL,*pafirst=NULL,*pasecond=NULL; void create(); void input () { char answer; head = (SCH *)malloc(sizeof(SCH)); /**/ head->next = NULL; pfirst = head; answer = 'y'; while ( answer == 'y' ) { Is_Game_DoMain: printf("\nGET Top 5 when odd\nGET Top 3 when even"); printf("\n輸入運動項目序號 (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n這個項目已經存在請選擇其他的數字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n項目不存在"); printf("\n請重新輸入"); goto Is_Game_DoMain; } switch ( overgame%2 ) { case 0: n = 3;break; case 1: n = 5;break; } for ( i = 1 ; i <= n ; i++ ) { Is_Serial_DoMain: printf("\n輸入序號 of the NO.%d (0<x<=%d): ",i,nsc); scanf("%d",&serial); if ( serial > nsc ) { printf("\n超過學校數目,請重新輸入"); goto Is_Serial_DoMain; } if ( head->next == NULL ) { create(); } psecond = head->next ; while ( psecond != NULL ) { if ( psecond->serial == serial ) { pfirst = psecond; pfirst->count = pfirst->count + 1; goto Store_Data; } else { psecond = psecond->next; } } create(); Store_Data: pfirst->athlete[pfirst->count].item = overgame; pfirst->athlete[pfirst->count].range = i; pfirst->serial = serial; printf("Input name:) : "); scanf("%s",pfirst->athlete[pfirst->count].name); } printf("\n繼續輸入運動項目(y&n)?"); answer = getchar(); printf("\n"); } } void calculate() /**/ { pfirst = head->next; while ( pfirst->next != NULL ) { for (i=1;i<=pfirst->count;i++) { if ( pfirst->athlete[i].item % 2 == 0 ) { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 5;break; case 2:pfirst->athlete[i].score = 3;break; case 3:pfirst->athlete[i].score = 2;break; } } else { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 7;break; case 2:pfirst->athlete[i].score = 5;break; case 3:pfirst->athlete[i].score = 3;break; case 4:pfirst->athlete[i].score = 2;break; case 5:pfirst->athlete[i].score = 1;break; } } if ( pfirst->athlete[i].item <=msp ) { pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score; } else { pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score; } } pfirst->totalscore = pfirst->menscore + pfirst->womenscore; pfirst = pfirst->next; } } void output() { pfirst = head->next; psecond = head->next; while ( pfirst->next != NULL ) { // clrscr(); printf("\n第%d號學校的結果成績:",pfirst->serial); printf("\n\n項目的數目\t學校的名字\t分數"); for (i=1;i<=ntsp;i++) { for (j=1;j<=pfirst->count;j++) { if ( pfirst->athlete[j].item == i ) { printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break; } } } printf("\n\n\n\t\t\t\t\t\t按任意建 進入下一頁"); getchar(); pfirst = pfirst->next; } // clrscr(); printf("\n運動會結果:\n\n學校編號\t男運動員成績\t女運動員成績\t總分"); pfirst = head->next; while ( pfirst->next != NULL ) { printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore); pfirst = pfirst->next; } printf("\n\n\n\t\t\t\t\t\t\t按任意建結束"); getchar(); } void create() { pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct)); pfirst->next = head->next ; head->next = pfirst ; pfirst->count = 1; pfirst->menscore = 0; pfirst->womenscore = 0; pfirst->totalscore = 0; } void Save() {FILE *fp; if((fp = fopen("school.dat","wb"))==NULL) {printf("can't open school.dat\n"); fclose(fp); return; } fwrite(pfirst,sizeof(SCH),10,fp); fclose(fp); printf("文件已經成功保存\n"); } void main() { system("cls"); printf("\n\t\t\t 運動會分數統計\n"); printf("輸入學校數目 (x>= 5):"); scanf("%d",&nsc); printf("輸入男選手的項目(x<=20):"); scanf("%d",&msp); printf("輸入女選手項目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
標簽: 源代碼
上傳時間: 2016-12-28
上傳用戶:150501
取各障礙物頂點連線的中點為路徑點,相互連接各路徑點,將機器人移動的起點和終點限制在各路徑點上,利用最短路徑算法來求網絡圖的最短路徑,找到從起點P1到終點Pn的最短路徑。上述算法使用了連接線中點的條件,因此不是整個規劃空間的最優路徑,然后利用遺傳算法對找到的最短路徑各個路徑點Pi (i=1,2,…n)調整,讓各路徑點在相應障礙物端點連線上滑動,利用Pi= Pi1+ti×(Pi2-Pi1)(ti∈[0,1] i=1,2,…n)即可確定相應的Pi,即為新的路徑點,連接此路徑點為最優路徑。
上傳時間: 2017-05-05
上傳用戶:tttt123
作者:Charles K Alexander ,Matthew N.O Sadiku 內容:電路基礎知識,電子工程師必學課程
標簽: 電路基礎
上傳時間: 2021-02-03
上傳用戶:
P P I I CK I I T T3 3 使用 說明--- - 連機 、 脫 機操作試用 MPLAB IDE 軟件一 、 P P I I C CK K I I T3 接 口說 明, , 硬 件 二 、 P P I I C CK K I I T3 連 接 電腦 MPL L AB I I DE 聯機三 、 聯機四 、聯機讀芯片程序五 、 脫機 燒寫 調試
上傳時間: 2022-03-24
上傳用戶:
1概述SDIO(安全數字I/0)卡是一種以SD存儲卡為基礎并與之兼容的卡設備。這種兼容性包括機械特性,電子特性,電源,信號和軟件。SDI0卡的目標是為移動電子設備提供低功耗高速度的數據I/0。最起碼的使用條件下,SDI0卡插進非SDI0主設備時,不會造成設備的物理破壞或軟件的崩潰,因此SDI0卡應該被主設備忽略來處理這種情況。一旦插入SDI0主設備,將以帶有擴展SD規范闡述的正常方式進行卡檢測。在這種狀態下,SDI0卡將進入空閑狀態,功耗稍微下降(在超過1秒的時間內平均值可達15mA)。通常在主機初始化和查詢卡時,作為SDIO設備而言,卡將會自己認證自己。主機軟件將會在已連接列表格式中獲得卡信息,并由此決定卡的I/0功能是否可以接受和激活。卡對電源的要求或是否有相應的驅動軟件是判據。如果卡被接受,卡會完全上電并啟動內建的I/0功能。1.1SDIO特點·應用在移動設備和固定設備·SD物理總線無需改變或做最小限度的改變·存儲軟件做最小的改動·允許擴展物理形式來適應特殊的需求·支持即插即用·支持多功能,包括多I/0以及1/0與SD存儲卡結合方式·單卡支持多達7項1/0功能和一項存儲功能·允許卡中斷主機·初始化電壓:2.0到3.6V·操作電壓:3.1到3.5V1.2主要參考文檔本規范廣泛參考了SDA的文檔:SD卡規范第一部分《物理層規范》2000年9月版本號1.01讀者可以通過這篇文檔了解關于SD設備操作的更多信息,另外,其他文檔都參照了本文檔,完整列表在章節B.1中列出。2.1SDIO卡類型規范中定義了兩種類型的SDI0卡。全速卡支持SPI、1位SD和4位SD以0-25MHz的傳輸模式工作,全速SDI0卡完全可以使數據傳輸速度超過100M位/秒(10M字節/秒)。SDI0卡第二版本是低速SDI0卡,這種卡僅需要SPI和1位SD傳輸模式,支持4位是可選擇項。另外,低速SD10卡在0-400KHz時鐘的整個范圍,低速卡的使用也是一種以最小硬件資源支持低速I/0設備的引領趨勢。支持類似功能的低速卡包括MODEM卡,便攜式掃描儀,GPS接收機等。如果卡是“Combo card”(存儲加上SDI0),那么全速和4位操作的要求是強制性的。
上傳時間: 2022-05-27
上傳用戶:得之我幸78
VIP專區-嵌入式/單片機編程源碼精選合集系列(151)資源包含以下內容:1. 基于TI DSP/BIOS的usb網卡的實現.2. 一個printf的實現源代碼.3. mp3的設計與實現.4. 51單片機雙機通訊程序.5. 頻率發生器.6. ISO-HDLC協議中文版。HDLC是很繁瑣的一個協議.7. 基于PIC18F2580實現的 電壓A/D轉換程序 結果送液晶1602顯示.8. 基于IPPP嵌入式音頻解碼器的設計與優化.9. 石器時代3.0源代碼 2008.08.27最新版 完全可編譯開服!.10. Keil C51 8051 demo kit.11. 點菜系統 內置很多功能.12. 較為全面的IAR AVR的PWM程序設計.13. IAR avr 的串口程序.14. 麥迪工作室51開發板溫度顯示的驅動代碼.15. S3C2440處理器上的ADC程序.16. S3C2440處理器上的CF卡讀寫程序.17. 嵌入式實時操作系統VxWorks及其開發環境Tornado pdg格式.18. velocity官方工具包 包括各種JAR包 示例 文檔等.19. 44B0 bootloader分析 適合初學者.20. 12,14,16點陣漢字顯示文件 12,14,16點陣漢字顯示文件.21. proteus中PIC單片機仿真庫文件。.22. 典型的PID算法.23. 一個用嵌入c寫的萬年歷程序.24. 周立功公司的SOPC源代碼.25. NIOS和IDE的相關使用的實踐例子.26. 使用NIOS的一些啟動位置的心得.27. 手把手教你學單片機(實驗與指令教程)推薦!.28. 我們學校設計的自行車多功能測速儀.29. 430控制12887源程序.30. PCI中斷分析.講述PCI中斷原理.31. PCI Tutorial Basic Bus Architecture Sample Transaction – PIO Sample Transaction – DMA PCI Signal.32. 就是個譯碼器.33. I2C 總線規范 I2C 總線的IC 不只幫助了設計者它們也使設備廠商得到很多益處.34. 此文檔是關于I2C設備驅動的開發指導文檔.35. 從大量的wince源代碼中剝離出的fat文件系統源代碼.移植性非常高. 里面帶有source i.36. 基于XSCALE架構處理器WinCE系統BSP開發.37. 設計MFRC500的匹配電路和天線的應用指南 對RC500天線設置非常有幫助的!.38. 優龍fs2410p實驗箱的sdk文件.39. 手機顯示屏的初始化原代碼,包括顯示一些單色畫面,平臺是KEIL C51.40. FX1N三菱plc與pc通信的一個很好的例子.
上傳時間: 2013-04-15
上傳用戶:eeworm
代入法的啟發示搜索 我的代碼實現是:按照自然語言各字母出現頻率的大小從高到低(已經有人作國統計分析了)先生成一張字母出現頻率統計表(A)--------(e),(t,a,o,i,n,s,h,r),(d,l),(c,u,m,w,f,g,y,p,b),(v,k,j,x,q,z) ,再對密文字母計算頻率,并按頻率從高到低生成一張輸入密文字母的統計表(B),通過兩張表的對應關系,不斷用A中的字母去替換B中的字母,搜索不成功時就回退,在這里回朔是一個關鍵。
上傳時間: 2015-10-24
上傳用戶:wanqunsheng