编程之战 第一百二八章 地图压缩(中)

小说:编程之战 作者:程序小猿 更新时间:2024-08-06 08:41:20 源网站:顶点小说
  “阿历克斯,再想想别的法子吧”,牛仔央求地说道。

  “唉,好吧”,杨成只好单手托腮,开始了思考。

  地图信息实例像这样:

  [true,true,true,false,true]

  [false,false,true,false,false]

  [true,false,true,false,true]

  [true,false,false,false,true]

  [true,true,true,true,true]

  这是一个5x5的矩阵。

  其中true代表可通行的区域,false标注的区域无法通行。

  那么,怎么把这个地图实例转为手机存储呢?

  一种最简单的方法,是把这个实例序列化为字符串,就像这样:

  “[[true,true,true,false,true],[false,false,true,false,false],[true,false,true,false,true],[true,false,false,false,true],[true,true,true,true,true]]“

  这种方法很有效,但缺点也很明显。

  占用的存储空间太多了,远远超过了10个字符的长度。

  所以,必须想一个方法,对地图信息进行压缩。

  杨成通过观察,发现了一种比较好的压缩方法。

  使用二进制!

  true可以用数字1来替代,false用数字0来替代。

  那么矩阵就成了0和1构成的数字矩阵。

  然后,将矩阵的每一行,看作是二进制数字。

  比方说,第一行:

  [true,true,true,false,true]

  替换成数字:

  [1,1,1,0,1]

  看作二进制数字:

  “11101”

  然后将这个二进制数字,转换为36进制。

  得到小写字母“t”。

  这样,足足减少了4个字符,达到了压缩的目的!

  对矩阵的每一行都这么处理,就可以得到5个36进制字符。

  再将这5个字符用逗号分割开来,以表明行结束。

  总共只需要5 4=9个字符,其中包括4个逗号。

  这个方法是切实可行的,但还有更好的办法!
为更好的阅读体验,本站章节内容基于百度转码进行转码展示,如有问题请您到源站阅读, 转码声明
八零电子书邀请您进入最专业的小说搜索网站阅读编程之战,编程之战最新章节,编程之战 顶点小说!
可以使用回车、←→快捷键阅读
本站根据您的指令搜索各大小说站得到的链接列表,与本站立场无关
如果版权人认为在本站放置您的作品有损您的利益,请发邮件至,本站确认后将会立即删除。
Copyright©2018 八零电子书