代码之家  ›  专栏  ›  技术社区  ›  ParoX

编程逻辑:求大数的最小方程

  •  6
  • ParoX  · 技术社区  · 14 年前

    我试图为一个特别大的数找到最小的方程串。例如给定数字

    "39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816"

    最小的方程是64^64(据我所知)。它只包含5个字节。

    基本上,程序会反转数学,而不是采取一个表达式和找到一个答案,它采取一个答案,并找到最简单的表达式。简单化是指最小的字符串,而不是简单的数学。


    编辑:

    好 啊。所以,根据答案来判断,找到最小的方程式要花费太多的时间。到底有没有什么办法来强行这样做,得到迄今为止发现的最小的?

    例如给定一个超大型的数字。有时取数的平方根会导致表达式小于数本身。

    8 回复  |  直到 14 年前
        1
  •  10
  •   tjgreen    14 年前

    只需在你的Google hopper中添加另一个关键字,请参见 Kolmogorov Complexity . 字符串的Kolmogorov复杂度是给定空输入时输出字符串的最小图灵机的大小。这是一种形式化你所追求的东西的方法。然而,计算给定字符串的Kolmogorov复杂性是一个不可判定的问题:)

    希望这有帮助,

    TJ公司

        2
  •  7
  •   Charles    14 年前

    这里有一个很好的程序: http://mrob.com/pub/ries/index.html

        3
  •  4
  •   David_001    14 年前

    我问了一个问题“这样做有什么意义”,因为我不知道你是从数学的角度看这个问题,还是从大量因子分解的角度看这个问题。

    由于其他答案考虑了因子分解的观点,我将从数学的角度来看。特别是,您描述的问题是 压缩性 问题。这里有一个数字,你想用最小的算法来描述它。高度随机数的可压缩性很差,为了描述它们,你要么写出所有的数字,要么描述一个只比数字本身小一点点的确定性算法。

    目前没有 一般的

    正如你所说你不懂很多数学,这也许对你来说不是一个有用的答案。。。

        4
  •  3
  •   David Thornley    14 年前

    你在做一种无损压缩,无损压缩对随机数据不起作用。相反,假设您有一种方法可以将N位数字压缩为N-1位数字。在这种情况下,需要将2^N个值压缩为2^N-1个指定,即每个指定平均有2个值,因此无法解压缩平均指定。无损压缩在相对结构化的数据上工作得很好,我们可能得到的数据压缩得很小,而我们得不到的数据实际上增长了一些。

        5
  •  2
  •   Tristan    14 年前

    看起来你基本上想对一个任意大的数做因子分解。这是一个如此困难的问题,它实际上是现代密码学的基石。

        6
  •  2
  •   Community CDub    8 年前

    这看起来确实是一个数学问题,而不是程序设计或计算机科学问题。你应该问这个 https://math.stackexchange.com/

        7
  •  1
  •   President James K. Polk    14 年前

    也许你的问题还不清楚 integer relation finding 是你想要的。

    编辑:

        8
  •  0
  •   Steven Sudit    14 年前

    无穷多素数的存在意味着总有一些不能通过因子分解来简化的数。你所要求的是不可能的,对不起。