圆域、曲线与编码
VectorPaint 前缀码树:把四个符号放在叶节点再核逐位译读
用零、一零、一一零、一一一四码核叶路径与解码,另留零和零一冲突对照。
本文目录
本课手绘一棵四符号二叉码树,把边标签、叶符号和根到叶路径对应起来。图形用于说明前缀码,不是VectorPaint提供压缩器,也不宣称这套自设码对任意数据最优;编码、译读与图形排版分别检验。
先定四个符号及四条码字
画布纵向一千二百乘一千六百,先在纸面写A用零、B用一零、C用一一零、D用一一一。参照NIST前缀码定义,关键是没有一条完整码字成为另一条的前缀。这里零和一是边标签,A到D是符号,不能把字符A直接当根节点的二进制值。先建节点、边、位标签、符号、审核路径五层,输入任何长消息前先把码表完整写好,之后不能边译读边偷偷换表。
根节点先分出零叶与一支
根R放上方,向左边标零,终点直接是A叶;向右边标一,终点是内部节点I。节点之间留足文字空间,位标签靠对应边中段,不放在两条边交叉处。A下面不应再接后代,因为A的零已经是完整码字;若为了排版在A下继续挂B,便改变了前缀关系。边用实际可见路径入口画,箭头可省但方向由上至下写清楚,不把根周围装饰圆算成额外层级或位值。
一支再分出B和最后双叶
从I向左标零到B叶,向右标一到内部节点J。再从J左零到C,右一到D。沿根读B是先一再零,C是一一零,D是一一一,不能只看叶旁最近的边就把所有左叶都写零。画完先数A到D四叶、R与I与J三内部节点、共六边,七个节点不是七码字。参考NIST码树说明核根到叶路径的角色,不因图画得像树就断言所有内部节点也可直接输出符号。
前缀检查按完整路径逐对比
零开头的只有A,另外三码都以一开头,所以零不是它们的前缀。B的一零与C、D的一一在第二位不同;C与D前三位分别一一零和一一一,相互也不为前缀。逐对比较后在审核稿打勾,不能只比较码长就说不同长度一定冲突或一定不冲突。可把各叶路径用不同浅色追一次,但颜色不加入码字,黑白输出仍须由边上零一读回原表。若某标签重复或少一位,先修边标而非修改符号名字绕开错误。
九位消息按到叶再回根译读
原创消息串写零一零一一零一一一,共九位。按树读第一位零到A,回根;接下来一零到B,再回根;接着一一零到C,末尾一一一到D,结果ABCD。把分组记为零、 一零、 一一零、 一一一,逗号只用于说明,不是消息实际位。若末尾只剩一一,会停在J而非叶,应记未完成码字,不能凭最像C或D猜补最后一位。界面没有自动解码时就在外部笔记手工走路径,不编造成功提示。
错误前缀表另做双解对照
另存错例表A为零、B为零一、C为一零、D为一一。A码零成为B码零一的前缀,且串零一零可以分成零加一零即AC,也可以分零一加零即BA,给出一个具体双解证据。不能只改错例颜色后把两表混用,也不要笼统说所有非前缀码的每条消息都必有多解;这里已经展示的是本错例这一串。将两种分组画在树旁,明码与错误码分别命名,交付图不把错例标成第二套同样有效的即时译读规则。根到A走一边,到B走两边,到C和D各走三边,与码长一二三三对应。画面纵向间隔可以为排版调整,却不能多添一个无标签节点来拉齐高度,否则路径边数与码字长度不再相符。短码叶子不必与长码叶子排在同一横线上,距离的整齐不应改变码树身份。
排查把自设码冒称最优压缩
本码ABCD共九位,若四符号等频而采用每符号两位的固定表,同样四符号只需八位,因此不能宣称自设变长码一定更省。变长码是否适合某种数据还依赖符号频率等条件,本课不导入私人文件或测压缩率。导出后核每条边的零一和每叶符号,若字体替换使一像竖线,改可读字体或图例,不改码字迁就外观。多余辅助连线要隐藏,避免读者把虚线也当可走分支;计算结论与视觉排版分别留下依据。
重开按叶路径和返回规则验收
保存退出再重开,先从四叶各反查根路径,核四叶三内部六边,再不看旧答案手读九位串。遇叶输出并回根,停内部就保留未完成,规则不能因图中上下距离不同而改变。打开最终输出,确认位标签没有被裁切,错表双解和等频八位对照身份明确;未验证格式不写已兼容。完成是别人能靠图复现码表、ABCD译读和错例两种分组,不是应用已经执行压缩、解压或证明任意频率下的最优性。
相关教程与资料
VectorPaint 有向依赖图:让箭头与可行顺序一一对应、VectorPaint 三位格雷码环:核对相邻一位变化与首尾闭合。
资料核对:2026 年 11 月 13 日,VectorPaint 公开版本 1.0.8,最低要求 iOS / iPadOS 17.0。范围参照官方 App Store与Apple 公开查询。手工练习使用安装版本实际可见入口;外部演算、文字记录与示意不代表内置自动分析。本文没有逐项真机、私人文件或全部导出环境实测声明。