我不太了解数学,所以我不知道如何开始谷歌我正在寻找的东西,所以我依靠专家的智慧来帮助我理解我的目标... < / p>
我试图找到特定大数的最小方程组。例如,给出数字
“39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816”
最小的等式是64 ^ 64(我知道)。它只包含5个字节。
基本上程序会反转数学,而不是采用表达式并找到答案,它会得到答案并找到最简单的表达式。简单就是这种情况意味着最小的字符串,而不是简单的数学。
这已经创建了吗?如果是这样我在哪里可以找到它?我正在寻找非常巨大的数字(10 ^ 10000000)并将它们分解为希望表达式,其长度将为100个字符。这甚至可能吗?现代的CPU / GPU是不是能够进行如此大的计算?
编辑:
确定。因此,找到最小的等式需要花费太多时间来判断答案。到目前为止,是否有强力推动并获得最小的发现?
例如给出一个超级超级的数字。有时采用sqaureroot数字将导致表达式小于数字本身。
就它开始的表达方式而言,它自然会尝试表达式最小的表达式。我确信有很多数学上我不知道的事情,但是使数字变小的方法之一就是权力。
答案 0 :(得分:10)
只需在Google漏斗中投放另一个关键字,请参阅Kolmogorov Complexity。在给定空输入的情况下,字符串的Kolmogorov复杂度是输出字符串的最小图灵机的大小。这是形式化你似乎追求的一种方式。但是,计算给定字符串的Kolmogorov复杂度是一个不可判定的问题:)
希望这有帮助,
TJ
答案 1 :(得分:7)
这里有一个很好的计划: http://mrob.com/pub/ries/index.html
答案 2 :(得分:4)
我问了一个问题“这样做有什么意义”,因为我不知道你是从数学的角度来看这个问题,还是从很多因素的角度来看这个问题。
由于其他答案已经考虑了因子分析的观点,我将研究数学角度。特别是,您描述的问题是压缩性问题。这是您有一个数字,并希望用最小的算法来描述它。高度随机数具有非常差的可压缩性,为了描述它们你要么必须写出所有数字,要么描述一个确定性算法,它只比数字本身略小。
目前没有通用数学定理可以确定数字的表示是否是该数字的最小可能(尽管通过理解shannon的信息理论可以发现下限)。 (我说一般定理,因为确实存在特殊情况)。
正如你所说,你不知道很多数学,这对你来说可能不是一个有用的答案......
答案 3 :(得分:3)
您正在进行无损压缩,无损压缩不适用于随机数据。相反,假设您有一种将N位数字压缩为N-1位数的方法。在这种情况下,您将有2 ^ N个值压缩为2 ^ N-1个名称,这是每个名称平均2个值,因此您的平均名称无法解压缩。无损压缩在相对结构化的数据上运行良好,我们可能得到的数据压缩得很小,而我们不会得到的数据实际上会增长一些。
这有点复杂,因为你通过允许每个角色获得更多信息来部分压缩。 (有更多的N字符序列涉及数字和运算符,而不仅仅是数字。)不过,你不会得到无损压缩,平均来说,这比仅用二进制写整数更好。
答案 4 :(得分:2)
看起来你基本上想要对任意数量的因子进行分解。这是一个非常困难的问题,它实际上是现代密码学的基石。
答案 5 :(得分:2)
这似乎是一个数学问题,而不是编程或计算机科学问题。你应该在https://math.stackexchange.com/
上问这个问题答案 6 :(得分:1)
虽然你的问题仍然不清楚,但也许你正在追求integer relation finding。
编辑:
有人猜测找到一个“短”形式在某种程度上与保理问题有关。除非你的定义要求产品作为答案,否则我不相信这是真的。考虑以下伪算法,它只是草图,并且没有尝试进行优化。
如果“最短”是一个定义明确的概念,那么一般来说,通过使用小整数到大功率来获得“短”表达式。如果N是我的整数,那么我可以在附近找到一个0 mod 4的整数。在+/- 2.我可以找到+/- 4内的整数,即0 mod 8.依此类推。现在这只是2的幂。我可以用3,5,7等执行相同的练习。例如,我们可以轻松找到最接近的整数,它同时是2,3,5,7的幂的乘积, 11,13和17,称之为N_1。现在计算N-N_1,将其命名为d_1。也许d_1是“短暂的”。如果是这样,那么N_1(表示为素数的幂)+ d_1就是答案。如果没有,请递归以找到d_1的“短”表达式。
我们也可以选择可能比我们的第一选择更远的整数;即使差异d_1较大,也可能是较短的形式。
答案 7 :(得分:0)
无数个素数的存在意味着总会存在无法通过因子分解的数字。对不起,你所要求的是不可能的。