将一系列数字编码为单个数字 - 使用中文余数定理

时间:2013-01-16 05:20:45

标签: algorithm chinese-remainder-theorem

我需要使用整数S对任意数量的元素(但有限)的序列K进行编码,并且能够解码K以获取初始序列。

我需要这样做,以便计算机能够很好地处理数字K

我是这样做的(在lisp中):

  • 假设序列S具有n个元素e1,... en

  • 生成前n个素数p1 ... pn

  • 写K = p1 ^ e1 + p2 ^ e2 + ... + pn ^ en

我试过这个方法。但是,我得到了很多数字。

我知道可以使用chinese remainder theorem来解决问题,而获得的K并不是那么大。

有人可以帮助我使用这个定理,以便编码序列吗?

编辑:

我希望使用一个具体的简单示例来查看使用ch r th进行编码的算法。我无法理解维基百科和其他网络资源的理论思想。

1 个答案:

答案 0 :(得分:1)

您正在寻找Gödel numbering of sequences。这是一种将(有限的)数字序列编码为单个数字的方法。中国剩余定理给出了一种递归的构造方法。