我想为有理数结构实现超紧凑存储。
在Alexander Schrijver的《线性和整数规划理论》一书中,我找到了位大小的定义(第页)。15) 的 rational number
有理数的表示很清楚:符号用一位表示,商和分数用对数表示。
n 如何区分其元素? 例如,如果我想写两个元素的向量: 524 = 1000001100b 42 = 101010b . 如何仅使用2个附加位来指定时间 1000001100 101010 开始?
n
524 = 1000001100b
42 = 101010b
1000001100
101010
当然,不可能只将整数表示形式附加到另一个表示形式上,并添加有关合并位置的信息,因为这将比书中的公式(我无法访问)所给出的要多得多。 我相信这是编码理论的问题,我不是专家。但我发现了一些东西也许能给你指明正确的方向。在 this post f(要编码的整数个数,都在[1,N]=2的范围内) N=524个 编码的2个整数的最大位长度是 因此, 为了拥有超紧凑的编码,尽管人们不得不花费大量的时间进行编码和解码。
IEEE 754 .