91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么實現算術編碼

發布時間:2021-07-23 16:35:13 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

C++中怎么實現算術編碼,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

C++算術編碼需要輸入的是符號,各個符號的概率還有需要編碼的符號序列,根據概率可以算出初始編碼間隔,先設幾個變量在后面可用:High——當前編碼的上限,Low——當前編碼的下限,high——中間變量,用來計算下一個編碼符號的當前間隔的上限,low——中間變量,用來計算下一個編碼符號的當前間隔的下限,d——當前間隔之間的距離。

第1個編碼符號的當前間隔為其初始的編碼間隔,第i個編碼符號的當前間隔為第i-1個編碼后的[Low,High),第i+1個編碼符號的當前間隔算法如下:high=Low+d*第i+1個初始編碼符號對應的上限,low=Low+d*第i+1個編碼符號對應的下限,然后High=high,Low=low,d=d*第i個編碼符號的概率。

編碼程序如下:

#include <iostream.h> #define M 100  #define N 4  class suanshu  {   int count,length;  char number[N],n;  long double chance[N],c;  char code[M];  long double High,Low,high,low,d;  public:  suanshu()    {High=0;Low=0;}  void get_number();  void get_code();  void coding();  ~suanshu(){}  };   void suanshu::get_number()  {  cout<<"please input the number and its chance."<<endl;  for(int i=0;i<N;i++)  {    cin>>n>>c;    number[i]=n;    chance[i]=c;  }  if(i==20)    cout<<"the number is full."<<endl;  count=i;  }

看完上述內容,你們掌握C++中怎么實現算術編碼的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

乌兰察布市| 巫溪县| 清水县| 华容县| 华亭县| 纳雍县| 永定县| 仁布县| 凤山县| 三门县| 拜城县| 长泰县| 虹口区| 邢台县| 平顺县| 玉林市| 浮山县| 莱西市| 龙州县| 和田县| 子洲县| 青铜峡市| 忻州市| 包头市| 商都县| 方山县| 藁城市| 六盘水市| 林周县| 湖南省| 郧西县| 兴城市| 凌源市| 博罗县| 临江市| 兴安县| 洞头县| 南部县| 七台河市| 田阳县| 丹凤县|