單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào)。很明顯一個(gè)八度就有12個(gè)半音。A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)440周。 升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)升D調(diào):1=#D,也就是降E調(diào):1=BE;311升F調(diào):1=#F,也就是降G調(diào):1=BG;369升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415升A調(diào):1=#A,也就是降B調(diào):1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所謂1=A,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂(lè)時(shí)音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂(lè)比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂(lè)比較有興趣而又不知其解的朋友能有所啟迪。 一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱(chēng)f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例: A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。可見(jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類(lèi)推。通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。另外,對(duì)于樂(lè)曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂(lè)曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值 : C調(diào)音符 頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調(diào)音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調(diào)音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時(shí)間: 2013-10-20
上傳用戶(hù):哈哈haha
伺服與變頻:伺服與變頻的一個(gè)重要區(qū)別是: 變頻可以無(wú)編碼器,伺服則必須有編碼器,作電子換向用. 一、兩者的共同點(diǎn): 交流伺服的技術(shù)本身就是借鑒并應(yīng)用了變頻的技術(shù),在直流電機(jī)的伺服控制的基礎(chǔ)上通過(guò)變頻的PWM方式模仿直流電機(jī)的控制方式來(lái)實(shí)現(xiàn)的,也就是說(shuō)交流伺服電 機(jī)必然有變頻的這一環(huán)節(jié):變頻就是將工頻的50、60HZ的交流電先整流成直流電,然后通過(guò)可控制門(mén)極的各類(lèi)晶體管(IGBT,IGCT等)通過(guò)載波頻率 和PWM調(diào)節(jié)逆變?yōu)轭l率可調(diào)的波形類(lèi)似于正余弦的脈動(dòng)電,由于頻率可調(diào),所以交流電機(jī)的速度就可調(diào)了(n=60f/2p ,n轉(zhuǎn)速,f頻率, p極對(duì)數(shù)) 二、談?wù)勛冾l器: 簡(jiǎn)單的變頻器只能調(diào)節(jié)交流電機(jī)的速度,這時(shí)可以開(kāi)環(huán)也可以閉環(huán)要視控制方式和變頻器而定,這就是傳統(tǒng)意義上的V/F控制方式。現(xiàn)在很多的變頻已經(jīng)通過(guò)數(shù)學(xué) 模型的建立,將交流電機(jī)的定子磁場(chǎng)UVW3相轉(zhuǎn)化為可以控制電機(jī)轉(zhuǎn)速和轉(zhuǎn)矩的兩個(gè)電流的分量,現(xiàn)在大多數(shù)能進(jìn)行力矩控制的著名品牌的變頻器都是采用這樣方 式控制力矩,UVW每相的輸出要加摩爾效應(yīng)的電流檢測(cè)裝置,采樣反饋后構(gòu)成閉環(huán)負(fù)反饋的電流環(huán)的PID調(diào)節(jié);ABB的變頻又提出和這樣方式不同的直接轉(zhuǎn)矩 控制技術(shù),具體請(qǐng)查閱有關(guān)資料。這樣可以既控制電機(jī)的速度也可控制電機(jī)的力矩,而且速度的控制精度優(yōu)于v/f控制,編碼器反饋也可加可不加,加的時(shí)候控制 精度和響應(yīng)特性要好很多。 三、談?wù)勊欧? 驅(qū)動(dòng)器方面:伺服驅(qū)動(dòng)器在發(fā)展了變頻技術(shù)的前提下,在驅(qū)動(dòng)器內(nèi)部的電流環(huán),速度環(huán)和位置 環(huán)(變頻器沒(méi)有該環(huán))都進(jìn)行了比一般變頻更精確的控制技術(shù)和算法運(yùn)算,在功能上也比傳統(tǒng)的伺服強(qiáng)大很多,主要的一點(diǎn)可以進(jìn)行精確的位置控制。通過(guò)上位控制 器發(fā)送的脈沖序列來(lái)控制速度和位置(當(dāng)然也有些伺服內(nèi)部集成了控制單元或通過(guò)總線(xiàn)通訊的方式直接將位置和速度等參數(shù)設(shè)定在驅(qū)動(dòng)器里),驅(qū)動(dòng)器內(nèi)部的算法和 更快更精確的計(jì)算以及性能更優(yōu)良的電子器件使之更優(yōu)越于變頻器。 電機(jī)方面:伺服電機(jī)的材料、結(jié)構(gòu)和加工工藝要遠(yuǎn)遠(yuǎn)高于變頻器驅(qū)動(dòng)的交流電機(jī) (一般交流電機(jī)或恒力矩、恒功率等各類(lèi)變頻電機(jī)),也就是說(shuō)當(dāng)驅(qū)動(dòng)器輸出電流、電壓、頻率變化很快的電源時(shí),伺服電機(jī)就能根據(jù)電源變化產(chǎn)生響應(yīng)的動(dòng)作變 化,響應(yīng)特性和抗過(guò)載能力遠(yuǎn)遠(yuǎn)高于變頻器驅(qū)動(dòng)的交流電機(jī),電機(jī)方面的嚴(yán)重差異也是兩者性能不同的根本。就是說(shuō)不是變頻器輸出不了變化那么快的電源信號(hào),而 是電機(jī)本身就反應(yīng)不了,所以在變頻的內(nèi)部算法設(shè)定時(shí)為了保護(hù)電機(jī)做了相應(yīng)的過(guò)載設(shè)定。當(dāng)然即使不設(shè)定變頻器的輸出能力還是有限的,有些性能優(yōu)良的變頻器就 可以直接驅(qū)動(dòng)伺服電機(jī)!!! 四、談?wù)劷涣麟姍C(jī): 交流電機(jī)一般分為同步和異步電機(jī) 1、交流同步電機(jī):就是轉(zhuǎn)子是由永磁材料構(gòu)成,所以轉(zhuǎn)動(dòng)后,隨著電機(jī)的定子旋轉(zhuǎn)磁場(chǎng)的變化,轉(zhuǎn)子也做響應(yīng)頻率的速度變化,而且轉(zhuǎn)子速度=定子速度,所以稱(chēng)"同步"。 2、交流異步電機(jī):轉(zhuǎn)子由感應(yīng)線(xiàn)圈和材料構(gòu)成。轉(zhuǎn)動(dòng)后,定子產(chǎn)生旋轉(zhuǎn)磁場(chǎng),磁場(chǎng)切割定子的感應(yīng)線(xiàn)圈,轉(zhuǎn)子線(xiàn)圈產(chǎn)生感應(yīng)電流,進(jìn)而轉(zhuǎn)子產(chǎn)生感應(yīng)磁場(chǎng),感應(yīng) 磁場(chǎng)追隨定子旋轉(zhuǎn)磁場(chǎng)的變化,但轉(zhuǎn)子的磁場(chǎng)變化永遠(yuǎn)小于定子的變化,一旦等于就沒(méi)有變化的磁場(chǎng)切割轉(zhuǎn)子的感應(yīng)線(xiàn)圈,轉(zhuǎn)子線(xiàn)圈中也就沒(méi)有了感應(yīng)電流,轉(zhuǎn)子磁 場(chǎng)消失,轉(zhuǎn)子失速又與定子產(chǎn)生速度差又重新獲得感應(yīng)電流。。。所以在交流異步電機(jī)里有個(gè)關(guān)鍵的參數(shù)是轉(zhuǎn)差率就是轉(zhuǎn)子與定子的速度差的比率。 3、對(duì)應(yīng)交流同步和異步電機(jī)變頻器就有相映的同步變頻器和異步變頻器,伺服電機(jī)也有交流同步伺服和交流異步伺服,當(dāng)然變頻器里交流異步變頻常見(jiàn),伺服則交流同步伺服常見(jiàn)。
標(biāo)簽: 伺服
上傳時(shí)間: 2013-11-17
上傳用戶(hù):maqianfeng
—圖數(shù)據(jù)類(lèi)型的實(shí)現(xiàn)——問(wèn)題描述:圖是一種較線(xiàn)性表和樹(shù)更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。在圖形結(jié)構(gòu)中,結(jié)點(diǎn)之間的關(guān)系是任意的,任意兩個(gè)數(shù)據(jù)元素之間都可能相關(guān),因此,圖的應(yīng)用非常廣泛,已滲入到諸如語(yǔ)言學(xué)‘邏輯學(xué)、物理、化學(xué)、電訊工程、計(jì)算機(jī)科學(xué)及數(shù)學(xué)的其它分支中。因此,實(shí)現(xiàn)圖這種數(shù)據(jù)類(lèi)型也尤為重要,在該練習(xí)中即要實(shí)現(xiàn)圖的抽象數(shù)據(jù)類(lèi)型。基本要求:2、 定義出圖的ADT;3、 采用鄰接矩陣及鄰接表的存儲(chǔ)結(jié)構(gòu)(有向圖也可使用十字鏈表)實(shí)現(xiàn)以下操作:a. 構(gòu)造圖 b. 銷(xiāo)毀圖 c. 定位操作d. 訪(fǎng)問(wèn)圖中某個(gè)頂點(diǎn)的操作e. 給圖中某個(gè)頂點(diǎn)賦值的操作f. 找圖中某個(gè)頂點(diǎn)的第一個(gè)鄰接點(diǎn)g. 找出圖G中頂點(diǎn)v相對(duì)于w的下一個(gè)鄰接點(diǎn)h. 在圖G中添加新頂點(diǎn)vi. 刪除圖G中頂點(diǎn)vj. 在圖G中插入一條邊k. 在圖G中刪除一條邊l. 實(shí)現(xiàn)圖的深度遍歷操作m. 實(shí)現(xiàn)圖的廣度遍歷操作參考提示:具體內(nèi)容參看教科書(shū)本156頁(yè)實(shí)驗(yàn)要求:對(duì)于以上具體操作要求實(shí)現(xiàn)時(shí)有良好的用戶(hù)交互界面。詳細(xì)設(shè)計(jì)、編碼、測(cè)試。
標(biāo)簽: 數(shù)據(jù)類(lèi)型 圖形 線(xiàn)性 樹(shù)
上傳時(shí)間: 2015-03-13
上傳用戶(hù):saharawalker
約瑟夫問(wèn)題有原始的約瑟夫和發(fā)展了的約瑟夫兩種。 原始的約瑟夫的描述: 古代某法官要判決N個(gè)犯人的死刑,他有一條荒唐的法律,將犯人站成一個(gè)圓圈,從第S個(gè)人開(kāi)始數(shù)起,每數(shù)到第D個(gè)犯人,就拉出來(lái)處決,然后再數(shù)D個(gè),數(shù)到的人再處決———直到剩下的最后一個(gè)可赦免。 發(fā)展的約瑟夫的描述: 古代某法官要判決N個(gè)犯人的死刑,但這N個(gè)人每人持有一個(gè)密碼,他有一條荒唐的法律,將犯人站成一個(gè)圓圈,法官先給出一個(gè)密碼M,從第S個(gè)人開(kāi)始數(shù)起,每數(shù)到第M個(gè)犯人,就拉出來(lái)處決,再根據(jù)這個(gè)人所持有的密碼F,然后再數(shù)F個(gè),數(shù)到的人再處決,以此類(lèi)推———直到剩下的最后一個(gè)可赦免。
標(biāo)簽: 發(fā)展
上傳時(shí)間: 2014-01-13
上傳用戶(hù):moshushi0009
A d hoc 移動(dòng)網(wǎng)絡(luò)是一種完全由移動(dòng)主機(jī)構(gòu)成的網(wǎng)絡(luò). 網(wǎng)絡(luò)拓?fù)湟鬃? 帶寬、能源有限是ad hoc 移動(dòng)網(wǎng)絡(luò) 的主要特點(diǎn). 針對(duì)這些特點(diǎn), 目前設(shè)計(jì)的ad hoc 路由協(xié)議大多采用按需查找方式. 該文介紹了這方面研究的最新進(jìn) 展, 對(duì)幾種典型的按需路由協(xié)議進(jìn)行了說(shuō)明、分析和綜合比較. 文中分析了目前協(xié)議存在的一些問(wèn)題并提出了相應(yīng)的改進(jìn)方法. 最后指出了下一步研究方向.
標(biāo)簽: hoc 移動(dòng)網(wǎng)絡(luò) 移動(dòng) 主機(jī)
上傳時(shí)間: 2015-04-26
上傳用戶(hù):古谷仁美
由玉面白狐修改的即時(shí)聊天,加入站長(zhǎng)廣播,線(xiàn)上人數(shù)、防止穿牆及踢人,及加上發(fā)言時(shí)間及日期,可知是何時(shí)的發(fā)言,以及防止別人惡意洗畫(huà)面,修正一些之前的錯(cuò)誤,及小小重排了一下版面,再加java提示語(yǔ)法,滑鼠移至輸入項(xiàng)即提示消失
標(biāo)簽: 修改
上傳時(shí)間: 2015-06-02
上傳用戶(hù):wlcaption
本程序在serialport的基礎(chǔ)上修改. 1. 加強(qiáng)了串口發(fā)送糾錯(cuò)能力,為串口拔插后的再連接提供了可能. 2.提高了串口接收的效能,由以前的查詢(xún)方式接收改為由事件驅(qū)動(dòng) 接收,在沒(méi)接收數(shù)據(jù)時(shí)不占用CPU時(shí)間. 3.修改了16進(jìn)制發(fā)送時(shí)只能發(fā)送大寫(xiě)的A--F,改后大小寫(xiě)a--f都 能發(fā)送. 4.修改了16進(jìn)制發(fā)送時(shí)不能輸入空格的毛病. 5.修改了接收大文件時(shí),程序反應(yīng)遲鈍的毛病.
標(biāo)簽: serialport 程序 修改 串口發(fā)送
上傳時(shí)間: 2016-01-14
上傳用戶(hù):xsnjzljj
數(shù)據(jù)結(jié)構(gòu) 1、算法思路: 哈夫曼樹(shù)算法:a)根據(jù)給定的n個(gè)權(quán)值{W1,W2… ,Wn }構(gòu)成 n棵二叉樹(shù)的集合F={T1,T2…,T n },其中每棵二叉樹(shù)T中只有一個(gè)帶權(quán)為W i的根結(jié)點(diǎn),其左右子樹(shù)均空;b)在F中選取兩棵根結(jié)點(diǎn)的權(quán)值最小的樹(shù)作為左右子樹(shù)構(gòu)造一棵新的二叉樹(shù),且置新的二叉樹(shù)的根結(jié)點(diǎn)的權(quán)值為其左、右子樹(shù)上結(jié)點(diǎn)的權(quán)值之和;c)F中刪除這兩棵樹(shù),同時(shí)將新得到的二叉樹(shù)加入F中; d)重復(fù)b)和c),直到F只含一棵樹(shù)為止。
標(biāo)簽: 算法 W1 數(shù)據(jù)結(jié)構(gòu) 樹(shù)
上傳時(shí)間: 2016-03-05
上傳用戶(hù):lacsx
哈夫曼樹(shù)的建立 一、 實(shí)驗(yàn)?zāi)康模? 1. 理解哈夫曼樹(shù)及其應(yīng)用。 2. 掌握生成哈夫曼樹(shù)的算法。 二、 實(shí)驗(yàn)內(nèi)容: 哈夫曼樹(shù),即最優(yōu)樹(shù),是帶權(quán)路徑長(zhǎng)度最短的樹(shù)。有著廣泛的應(yīng)用。在解決某些判定問(wèn)題上,及字符編碼上,有著重要的價(jià)值。 構(gòu)造一棵哈夫曼樹(shù),哈夫曼最早給出了算法,稱(chēng)為哈夫曼算法: (1)根據(jù)給定的N個(gè)權(quán)值 W1,W2,W3,……,Wn ,構(gòu)成N棵二叉樹(shù)的集合F= T1,T2,T3,……,Tn ,其中每棵二叉樹(shù)T1只有一個(gè)帶權(quán)為WI的根結(jié)點(diǎn),其左右子樹(shù)均空。 (2)在 F中選出兩棵根結(jié)點(diǎn)權(quán)值最小的樹(shù)作為左右子樹(shù)構(gòu)造一棵新的二叉樹(shù),且置新的二叉樹(shù)的權(quán)值為其左右子樹(shù)上的根結(jié)點(diǎn)的權(quán)值之和。 (3)在F中刪除這兩棵樹(shù),同時(shí)將新得到的加到F之中。重復(fù)(2)和(3),直至F中只剩一個(gè)為止。
標(biāo)簽: 樹(shù) 實(shí)驗(yàn) 算法
上傳時(shí)間: 2013-12-24
上傳用戶(hù):陽(yáng)光少年2016
1346511545法規(guī)的發(fā)生放大法水電費(fèi)收費(fèi)
標(biāo)簽: 1水電費(fèi)水電費(fèi)的收費(fèi)
上傳時(shí)間: 2016-03-18
上傳用戶(hù):woofliu
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1