最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用R語言實(shí)現(xiàn)霍夫曼編碼的示例代碼

 更新時間:2021年03月17日 15:59:21   作者:fanshunxing  
這篇文章主要介紹了用R語言實(shí)現(xiàn)霍夫曼編碼的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

可讀性極低,而且其實(shí)也沒必要用R語言寫,圖個樂罷了 

p=c(0.4,0.2,0.2,0.1,0.1)###輸入形如c(0.4,0.2,0.2,0.1,0.1)的概率向量,即每個待編碼消息的發(fā)生概率
p1=p###將概率向量另存,最后計算編碼效率要用
mazijuzhen=matrix(,nrow=length(p),ncol=length(p)-1)###碼字矩陣:第i行對應(yīng)向量p的第i個分量所對應(yīng)的那個待編碼消息的編碼后的碼字
group=matrix(c(1:length(p),rep(NA,length(p)*(length(p)-1))),nrow=length(p),ncol=length(p))###初始分組:每一行代表一組,每個行向量的所有分量代表此組的所有元素,初始時,有多少個待編碼消息就分多少個組,每組只有一個待編碼消息,以整數(shù)i代表向量p的第i個分量所對應(yīng)的那個待編碼消息
i=1###開始編碼
for(i in 1:(length(p)-1))
{
 orderp=order(p,decreasing = FALSE)###orderp的分量依次是:p的最小分量的下標(biāo),p的第二小分量的下標(biāo)。。。
 mazijuzhen[group[orderp[1],],i]=0###給概率最小的兩個消息組編上0和1
 mazijuzhen[group[orderp[2],],i]=1
 group[min(c(orderp[1],orderp[2])),]=c(na.omit(group[min(c(orderp[1],orderp[2])),]),na.omit(group[max(c(orderp[1],orderp[2])),]),rep(NA,length(p)-length(c(na.omit(group[min(c(orderp[1],orderp[2])),]),na.omit(group[max(c(orderp[1],orderp[2])),])))))###把此次迭代的兩個消息組中組編號較大的分到組編號較小的組里去。
 group[max(c(orderp[1],orderp[2])),]=NA###刪除組編號較大的組
 p[min(c(orderp[1],orderp[2]))]=p[orderp[1]]+p[orderp[2]]###計算本次迭代得到的新的消息組的發(fā)生概率
 p[max(c(orderp[1],orderp[2]))]=NA###由于組編號較大的組被刪除,所以相應(yīng)刪除它所對應(yīng)的概率
 print("當(dāng)前迭代次數(shù)")###本次迭代的結(jié)果總結(jié)
 print(i)
 print("概率向量")
 print(p)
 print("分組矩陣")
 print(group)
 print("碼字矩陣")
 print(mazijuzhen)
}
i=1###由霍夫曼編碼的特性,將所有編碼倒轉(zhuǎn)得到最終編碼
for (i in 1:length(p)) 
{
 mazijuzhen[i,]=rev(mazijuzhen[i,]) 
}
i=1###構(gòu)建碼長向量
machang=c()
for (i in 1:length(p))
{
 
 machang=c(machang,length(na.omit(mazijuzhen[i,])))
}
xiaolv=-p1%*%log(p1,2)/mean(machang)###計算編碼效率
print("最終的碼字矩陣和編碼效率")
mazijuzhen
xiaolv

到此這篇關(guān)于用R語言實(shí)現(xiàn)霍夫曼編碼的示例代碼的文章就介紹到這了,更多相關(guān)R語言 霍夫曼編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R包制作后出現(xiàn)not available for錯誤問題解決解決

    R包制作后出現(xiàn)not available for錯誤問題解決解決

    這篇文章主要為大家介紹了R包制作后出現(xiàn)not available for...錯誤的問題解決方式,有需要的朋友,可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • R語言中fread使用方法

    R語言中fread使用方法

    在R語言中,fread函數(shù)是data.table包中的一個功能強(qiáng)大的數(shù)據(jù)讀取函數(shù),可以用于快速讀取大型數(shù)據(jù)文件,它比基本的read.table和read.csv函數(shù)更快,尤其在處理大型數(shù)據(jù)集時效果更為明顯,這篇文章主要介紹了R語言中fread使用方法,需要的朋友可以參考下
    2023-12-12
  • R語言中for循環(huán)的并行處理方式

    R語言中for循環(huán)的并行處理方式

    這篇文章主要介紹了R語言中for循環(huán)的并行處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言中其它對象知識點(diǎn)總結(jié)

    R語言中其它對象知識點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是一篇關(guān)于R語言中其它對象知識點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • R語言 如何獲取指定位置的數(shù)據(jù)

    R語言 如何獲取指定位置的數(shù)據(jù)

    這篇文章主要介紹了R語言 如何獲取指定位置的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R繪制漂亮的中國地圖的實(shí)現(xiàn)示例

    R繪制漂亮的中國地圖的實(shí)現(xiàn)示例

    本文主要介紹了R繪制漂亮的中國地圖的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • R語言中assign函數(shù)和get函數(shù)的用法

    R語言中assign函數(shù)和get函數(shù)的用法

    這篇文章主要介紹了R語言中assign函數(shù)和get函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言使用gganimate創(chuàng)建可視化動圖

    R語言使用gganimate創(chuàng)建可視化動圖

    這篇文章主要為大家介紹了R語言使用gganimate創(chuàng)建可視化動圖的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • R語言數(shù)組實(shí)例用法及知識點(diǎn)總結(jié)

    R語言數(shù)組實(shí)例用法及知識點(diǎn)總結(jié)

    在本文里,我們給大家整理的是關(guān)于R語言數(shù)組的相關(guān)知識點(diǎn),有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-04-04
  • R語言環(huán)狀熱力圖的畫法

    R語言環(huán)狀熱力圖的畫法

    環(huán)狀熱力圖是一種以環(huán)狀布局展示數(shù)據(jù)的可視化方法,本文主要介紹了R語言環(huán)狀熱力圖的畫法,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論

水城县| 高青县| 外汇| 保德县| 江北区| 安仁县| 大名县| 广德县| 河池市| 洛浦县| 德庆县| 抚顺县| 湾仔区| 秦安县| 崇明县| 故城县| 广河县| 凤冈县| 小金县| 同江市| 新丰县| 额济纳旗| 焦作市| 克什克腾旗| 元阳县| 红原县| 仙居县| 扶绥县| 广宗县| 朔州市| 开鲁县| 东台市| 九寨沟县| 新民市| 南投市| 吴桥县| 龙游县| 绩溪县| 光泽县| 水富县| 乌兰县|