编程逻辑:找到最小的方程式为大数

Par*_*roX 6 algorithm math

我不太了解数学,所以我不知道如何开始谷歌我正在寻找的东西,所以我依靠专家的智慧来帮助我理解我的追求...

我试图找到特定大数的最小方程组.例如给出数字

"39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816"

最小的等式是64 ^ 64(我知道).它只包含5个字节.

基本上程序会反转数学,而不是采用表达式并找到答案,它会得到答案并找到最简单的表达式.简单就是这种情况意味着最小的字符串,而不是简单的数学.

这已经创建了吗?如果是这样我在哪里可以找到它?我正在寻找非常巨大的数字(10 ^ 10000000)并将它们分解为希望表达式,其长度将为100个字符.这甚至可能吗?现代的CPU/GPU是不是能够进行如此大的计算?


编辑:

好.因此,找到最小的等式需要花费太多时间来判断答案.到目前为止,有没有强制这个并获得最小的发现?

例如给出一个超级超大的数字.有时采用sqaureroot数字将导致表达式小于数字本身.

至于它将从什么表达式开始,它自然会尝试表达式最小的表达式.我确信有很多数学上我不知道的东西,但是使数字变得更小的方法之一就是力量.

tjg*_*een 10

只需在Google料斗中输入另一个关键字,请参阅Kolmogorov Complexity.在给定空输入的情况下,字符串的Kolmogorov复杂度是输出字符串的最小图灵机的大小.这是形式化你似乎追求的一种方式.但是,计算给定字符串的Kolmogorov复杂度已知是一个不可判定的问题:)

希望这可以帮助,

TJ

  • 很好的想法,但我不同意.Kolmogorov复杂性指的是*完整的*语言.这里的问题是指一种非常有限的算术表达语言,它并不完整.顺便说一下,Kolmogorov不可计算性的证明不适用于这种语言(它需要条件和循环). (7认同)
  • 这是Stack Overflow上最糟糕的一种现象,在这里有人发布了一个无用的答案,令人印象深刻的话,每个人都没有检查它.Kolmogorov复杂性的不可判定性在这里根本没有相关性,这种有限的语言......这里的问题实际上是微不足道的. (7认同)
  • 它比那更简单.我们可以列出哪些字符串评估为值,检查它们的值,然后在列表中向下,直到找到具有所需值的字符串.由于写出的数字是可接受的字符串,因此我们总是在有限时间内找到有限数字的值.它完全可以判断,完全不切实际. (2认同)
  • 正如@David,@ Eyal和@Shreevastsa所提到的,我们当然可以枚举所有小于一定长度的字符串(例如数字的长度),因此这完全是100%可判定的. (2认同)

Cha*_*les 7

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