言情小说吧_好看的小说免费阅读_红袖添香 - 阅文集团旗下网站

首頁 短篇

編程代碼之戰(zhàn)

第十章 地圖壓縮

編程代碼之戰(zhàn) 程序小猿 538 2022-09-03 20:36:09

  “阿歷克斯,再想想別的法子吧,這可是我的美好回憶哪...”

  牛仔央求著說道。

  “唉,好吧”。

  楊成只好單手托著腮,開始了思考。

  地圖信息對象是像這樣的:

  [1,1,1,0,1]

  [0,0,1,0,0]

  [1,0,1,0,1]

  [1,0,0,0,1]

  [1,1,1,1,1]

  這是一個5X5的矩陣,其中數(shù)字1代表可通行的區(qū)域,數(shù)字0標注的區(qū)域無法通行。

  那么,怎么把這個地圖實例壓縮到10個字符以內(nèi)呢?

  像這樣?

  “[[1,1,1,0,1],[0,0,1,0,0],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]”

 ?。╯tringify)

  這種轉(zhuǎn)為字符串的方法很有效,但缺點也很明顯。

  它占用的存儲空間太多了,遠遠超過了10個字符的長度。

  所以,必須想一個辦法,對地圖信息進行壓縮。

  楊成通過觀察,發(fā)現(xiàn)了一種比較好的壓縮方法。

  首先將矩陣的每一行,都看作是二進制表示的一個數(shù)字。

  比方說,第一行:

  [1,1,1,0,1]

  把它看作二進制數(shù)字:

  “11101”

  (36進制由0-9和a-z組成,a-z對應10-35)

  接著,將這個2進制數(shù)字,轉(zhuǎn)換為36進制。

  得到小寫字母“t”。

  這樣,又足足減少了4個字符,達到了壓縮的目的!

  如果對矩陣的每一行都這么處理,就可以得到5個36進制字符。

 ?。╰,4,l,h,v)

  再將這5個字符用逗號分割開來,以表明是不同的行,到時候方便還原數(shù)據(jù)。

  總共只需要5+4=9個字符,其中包括4個逗號。

  Bingo!

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設置
設置
書架
加入書架
書頁
返回書頁
指南
主站蜘蛛池模板: 康平县| 镇江市| 江口县| 蒙城县| 阿瓦提县| 田东县| 古田县| 阿瓦提县| 同江市| 会理县| 定远县| 昆明市| 桦甸市| 武穴市| 苗栗市| 西乌珠穆沁旗| 策勒县| 门头沟区| 阿拉善盟| 肇东市| 萍乡市| 浦江县| 镇江市| SHOW| 宾阳县| 惠州市| 华安县| 锡林郭勒盟| 伊吾县| 岐山县| 大新县| 新干县| 望江县| 横山县| 桑植县| 洛阳市| 台安县| 东乡族自治县| 旬邑县| 新田县| 横山县|