根据KW Regan的文章“ Connect the Stars”,他最后提到,找到整数表示以使得加,乘和比较运算可在线性时间内计算仍然是一个开放的问题:
是否存在整数表示形式,以便加法,乘法和比较都可以在线性时间内完成?基本上,是否存在线性时间离散排序的环?
(1)在没有比较的情况下,我们可以接近线性时间乘法和加法吗?在这里,我假设问题的大小可能会有所不同,因此我们可能需要一个允许更改整数大小的数据结构/算法。
(2)对于完整的问题,我们可以假定我们将找到一个最佳方案,用于对整数进行乘法,加法和比较。我们可以将这三个操作中最慢的(最坏的情况)接近线性时间多近?并注意,其他操作的速度有多快?
正式问题陈述
正如EmilJeřábek所提到的,我们想排除一些琐碎的案例,并专注于最坏案例的行为。
因此,我们要求,对于非负整数和∀ ÿ其中0 ≤ X < Ñ和0 ≤ ÿ < Ñ,我们可以找到一个数据结构/算法可以执行加法,乘法,以及与\之间比较X和ÿ在O (n log (n ))时间和O (log 2 (n ))空间中?
1
我将提到,可以创建一个在时间上对非负整数执行这些操作的方案,其中n是最大整数的位大小(假设我们提前知道n)。我想知道我们是否可以做得更好,并且与正在计算的当前整数成比例地及时进行。
—
马特·格罗夫
@TysonWilliams:是的!二进制!
—
杰夫·2012年
并非获得所有这些操作的线性时间,而是显示整数,以便所有这些操作的时间均为?
—
EmilJeřábek在2012年
实际上,有一个简单的肯定答案:用个填充位表示二进制整数。陈述是否不应该包含某种条件,以使表示形式的长度与二进制表示形式的长度成线性关系?
—
EmilJeřábek在2012年
@EmilJeřábek:我假设他希望任何整数的表示都使用f (n )位,对于某些函数f (n )= Θ (log n )。
—
杰夫·杰夫·2012年