本网站由以下捐款支持:OEIS基金会.

运行长度编码

来自OeisWiki
跳转到:航行,搜索

这篇文章需要更多工作.

请帮助扩展它!


运行长度编码(或运行长度编码)意味着将值列表转换为由每个单个值及其计数(其“运行”的长度)组成的成对列表。[1]

二进制运行长度编码

例如,当最多存在两个不同的值时01,则只需要运行长度即可恢复原始值列表,因为它总是知道下一次运行包含什么值。通过在中表示自然数二进制从左边开始,即最高有效位1对于,将每个自然数明确转换为有限元组自然数:

1二进制1元组:(1)
2二进制10元组:(1 1)
二进制11元组:(2)
4二进制100元组:(12)
5二进制101元组:(1 11)
6二进制110元组:(2 1)
7二进制111元组:(3)

此外,可以采用零(二进制0)对应于空元组的约定( ).(空元组( )提供了空总和,即0,因为每个数字对应一个和。)

进一步编码技术的应用

编码整数组合

每个有限元组自然数的整数合成它的元素之和为多少。因为这个数字,通过上面的映射,等于对元组进行编码的整数的二进制长度,所以非负整数(A001477号)按大小顺序对整数组成进行编码。(请参见整数组合的二进制表示顺序.)

编码整数分区

通过将元组的第一个元素解释为分区的第一个要素,将其余元素(每个元素减去一个元素后)解释为各部分之间的连续差异整数分区可以进行编码。请参见A129594号[2].

编码平衡括号

如果从每个中减去一个在元组中然后是同样的转换和减法是递归进行的,一直到每个分支,直到遇到零,然后将零转换为空元组( ),一个获得平衡括号,其中一个加泰罗尼亚语数字的组合解释(请参见一般树/括号的二进制运行长度编码.)

笔记

  1. 运行长度编码 —维基百科.org.
  2. Marc LeBrun最初的分区“疯狂顺序”映射(请注意,此处表示的编码使用的是素因子分解而不是二进制扩展的运行长度。)