資訊理論與編碼基礎
要還原以LZ77方式壓縮的資料。資料依序為「字元A」「字元B」「(距離2、長度5)」。(距離d、長度L)表示把「將已還原字串從末尾往前數第d個字元複製到末尾」這個動作,一次1個字元地重複L次。還原後的字串為下列何者?
- AABAB
- BABABABA
- CABAAAAA
查看答案與解析
正確答案:B. ABABABA
從A與B排成的「AB」開始。複製往前第2個字元A成為「ABA」,接著複製此時往前第2個字元B成為「ABAB」;每複製1個字元,複製來源也前進1個,因此複製5個字元後成為7個字元的「ABABABA」。像這樣長度可以比距離長,利用剛複製的字元作為複製來源,就能以1組參照表示短樣式的長重複。
- A. 這是把複製來源視為只有最初的2個字元。因為是一次複製1個字元,複製出來的字元也會成為下一次的複製來源。
- B. 正確。在 AB 之後複製 A、B、A、B、A,共7個字元。
- C. 這是把同一個A複製5次,但每複製1個字元末尾就會前進,因此往前第2個字元會是A與B交替。