什麼是前綴編碼?

General 更新 2024-12-23

數據結構的題目。前綴編碼是什麼意思 10分

選A.

B中01是011和010的前綴

C中11常110的前綴

D中1是11的前綴,0是00的前綴

前綴碼的定義

前綴碼:給定一個序列的集合,若不存在一個序列是另一個序列的前綴,則該序列集合稱為前綴碼。

商品條碼的前綴碼代表什麼?

0-5沒有任何含義。因為我們國家比較大,企業數量多,根據實際需要國際物品編碼協會分配給我們6個前綴碼,至於是用690唬還是用691,692則沒有什麼含義,按企業申請的先後次序分配。不過,由於我們國家規定690,691開頭的廠商識別碼是七位數字,給企業留下的商品代碼分配空間有10萬個,而692-695開頭的廠商識別碼是八位數字,給企業留下的商品代碼分配空間只有1萬個,所以一般會把大型企業、產品數量比較多的分配690-691開頭的,企業規模比較小的,產品數量少的分配692-695開頭的廠商識別碼。

另外,糾正下一樓回答中的一個錯誤,廠商識別碼是包含前綴碼的前7位或8位,而不是第4-8位。舉例中的廠商識別碼應該是69369838,而不是69838。因為69269838與69369838是完全不同的兩個廠家,按上面的說法就成了同一個廠家了。

哈夫曼樹編碼編碼如何保證前綴不重複

這是因為每個字符都是葉子結點,沒有孩子的。

數據結構 什麼是前綴碼

本人乃一個數據痴迷者,在計算機的道路上,也是範個數據結構的痴迷者,現在大學裡面和同學搞開發也痴迷於數據庫,我就我個人的理解給你談一談:

首先,數據結構是一門計算機語言學的基礎學科,它不屬於任何一門語言,其體現的是幾乎所有標準語言的算法的思想。

下列密碼中屬於前綴碼的是

前綴碼

在計算機及通信中,常用二進制編碼來表示字符。例如,可用00、01、10、11分別表示字母A、B、C、D。如果字母A、B、C、D出現的頻率是一樣的,傳輸100個字母用200個二進制位。但實際上字母出現的頻率很不一樣,如A出現的頻率為50%,B出現的頻率為25%,C出現的頻率為20%,D出現的頻率為5%。能否用不等長的二進制序列表示字母A、B、C、D,使傳輸的信息的二進制位儘可能少呢?事實上,可用000表示字母D,用001表示字母C,01表示B,1表示A。這樣表示,傳輸100個字母所用的二進制位為

3×5 + 3×20 + 2×25 + 1×50 = 175

這種表示比用等長的二進制序列表示法好,節省了二進制位。但當我們用1表示A,用00表示B,用001表示C,用000表示D時,如果接收到的信息為001000,則無法辨別它是CD還是BAD。因而,不能用這種二進制序列表示A、B、C、D。要尋找另外的表示法。

設a1a2…an-1an為長度為n的符號串,稱其子串a1,a1a2,…,a1a2…an-1分別為a1a2…an-1an的長度為1,2,…,n-1的前綴(Prefix)。

定義14.1 設A = {a1,a2,…,am}是一個符號串集合,若對任意ai,aj∈A,ai≠aj,ai不是aj的前綴,aj也不是ai的前綴,則稱A為前綴碼(Prefixed Code)。若符號串ai(i = 1,2…,m)中,只出現0和1兩個符號,則稱A為二元前綴碼(Binary Prefixed Code)。

例如{1,01,001,000}是前綴碼,而{1,11,001,0011}不是前綴碼。那麼如何產生前綴碼呢?

可用一棵二元樹來產生一個二元前綴碼。給定一棵二元樹T,假設它有t片樹葉。設v是T任意一個分支點,則v至少有一個兒子至多有兩個兒子。若v有兩個兒子,則在由v引出的兩條邊上,左邊的標上0,右邊的標上1;若v只有一個兒子,在v引出的邊上可標0也可標1。設vi為T的任意一片樹葉,從樹根到vi的通路上各邊的標號組成的符號串放在vi處,t片樹葉處的t個符號串組成的集合為一個二元前綴碼。由上述作法可知,vi中的符號串的前綴均在vi所在的通路上,因而所得集合為二元(0和1組成)前綴碼。由此法可知,若T存在帶一個兒子的分支點,則由T產生的前綴碼不惟一,但T若為完全二元樹,則T產生的前綴碼就是惟一的了。

圖14-6中所示的二元樹產生的前綴碼為:{1,00,010,011}。

當知道了傳輸的符號出現的頻率時,如何選擇前綴碼,使傳輸的二進制位儘可能定少呢?

這就要先產生一棵最優二元樹T,然後用T產生二元前綴碼,能使傳輸的二進制位最少。下面通過一個例子來說明最優前綴碼的產生過程。

已知字母A、B、C、D、E、F出現的頻率如下:

A——30%,B——25%,C——20%,

D——10%,E——10%,F——5%。

(1)求帶權30,25,20,10,10,5的最優二元樹T

(2)在T上求一個前綴碼。

(3)設樹葉vi帶權為w%×100 = w,則vi處的符號串表示出現頻率為w%的字母。

A = {01,10,11,001,0001,0000}

為一前綴碼,其中

0000表示F,0001表示E,001表示D,

01表示C,10表示B,11表示A。

傳輸100個這樣的字母所用的二進制位為

4×(5 + 10) + 3×10 + 2×(20 + 25 + 30) = 240

很複雜啊,但工夫不負有心人,努力研究啊!!!...

在什麼情況下,等長編碼是最優前的編碼 15分

在(平均碼長為2.24)情況下,等長編碼是最優前的編碼.

常見的等福編碼就是前綴碼。所謂最優前綴碼是指,平均碼長或文件總長最小的前綴編碼稱為最優的前綴碼(這裡的平均碼長相當於碼長的期望值)。

變長編碼可能使解碼產生二義性,而前綴碼的出現很好地解決了這個問題。而平均碼長相當於二叉樹的加權路徑長度,從這個意義上說,由哈夫曼樹生成的編碼一定是最優前綴碼,故通常不加區分的將哈夫曼編碼也稱作最優前綴碼。

需要注意的是,由於哈夫曼樹建立過程的不唯一性可知,生成的哈夫曼編碼也是不唯一的.

下面給出的集合中,哪一個是前綴碼

前綴編碼滿足任意一個字符的編碼都不是另一個字符的編碼的前綴.在B中10編碼是101編碼的前綴,因此不滿足前綴編碼的要求.

下面給出的集合中,哪一個是前綴碼

什麼集合

哪一組不是合法前綴編碼: A 00,01,10,11 B 0,1,00,11 C 0,10,110,111 D 1,01,000,001

B

相關問題答案
什麼是前綴編碼?
什麼是商家編碼?
什麼是優先編碼器?
什麼是行政編制標準?
什麼是旺旺號碼?
什麼是前端?
什麼是前置後驅?
什麼是前打竿?
什麼是線性編輯?
淘寶上什麼是退款編號?