【发布时间】:2010-08-04 20:03:00
【问题描述】:
我对数学知之甚少,所以我不知道如何开始用谷歌搜索我正在寻找的东西,所以我依靠专家的智慧来帮助我了解我所追求的......
我正在尝试为特定的大数找到最小的方程串。例如给定数字
“39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816”
最小的方程是 64^64(据我所知)。它只包含 5 个字节。
基本上,该程序会反转数学运算,而不是接受一个表达式并找到答案,而是接受一个答案并找到最简单的表达式。简单的是这种情况意味着最小的字符串,而不是真正简单的数学。
这已经创建了吗?如果是这样,我在哪里可以找到它?我正在寻找非常大的数字(10 ^ 10000000)并将它们分解为希望长度为100个字符的表达式。这甚至可能吗?现代 CPU/GPU 无法进行如此大的计算吗?
编辑:
好的。因此,根据答案判断,找到最小的方程需要太多时间。有没有办法暴力破解这个并获得迄今为止发现的最小的?
例如给定一个超级超级大的数字。有时取数字的平方根会导致表达式小于数字本身。
至于它会从什么表达式开始,它自然会尝试最小的表达式。我确信有很多我不知道的数学知识,但是让数字变小很多的方法之一就是幂。
【问题讨论】:
-
您究竟为什么要这样做?我看不到一点。
-
你所说的“方程”是什么意思?假设你有(你的号码)+1。你想要“64^64+1”吗?如果你只想要权力,那相对容易。否则,您必须准确定义您允许作为“方程式”的表达式类型。 (“64^64”只是一个表达式,而不是一个方程。一个方程是一个带有等号的东西,你说一件事等于另一件事。)
-
我希望您的目标不是使用这种技术制作压缩算法。即使假设这样的程序不仅存在而且在合理的时间内运行,“魔函数理论”与任何其他压缩技术(例如鸽子洞原理)具有相同的局限性。
-
2^384 也可以,长度一样。
-
更不用说
4^192、8^128和16^96。