问问题
192 次
2 回答
2
根据经验,它高于大约 10 万亿分之一的海明数,或更高。
在这里使用你漂亮的 GCD 技巧对我们没有帮助,因为一些相邻的汉明数在它们之间必然没有公因数。
更新:在 ideone和其他地方在线尝试,我们得到
4T 5.81s 22.2MB -- 16 digits used.... still good
-- (as evidenced by the `True` below), but really pushing it.
((True,44531.6794,7.275957614183426e-11),(16348,16503,873),"2.3509E+13405")
-- isTruly max min logval nth-Hamming approx.
-- Sorted logval difference as i,j,k value
-- in band in band in decimal
10T 11.13s 26.4MB
((True,60439.6639,7.275957614183426e-11),(18187,23771,1971),"1.4182E+18194")
13T 14.44s 30.4MB ...still good
((True,65963.6432,5.820766091346741e-11),(28648,21308,1526),"1.0845E+19857")
---- same code on tio:
10T 16.77s
35T 38.84s
((True,91766.4800,5.820766091346741e-11),(13824,2133,32112),"2.9045E+27624")
70T 59.57s
((True,115619.1575,5.820766091346741e-11),(13125,13687,34799),"6.8310E+34804")
---- on home machine:
100T: 368.13s
((True,130216.1408,5.820766091346741e-11),(88324,876,17444),"9.2111E+39198")
140T: 466.69s
((True,145671.6480,5.820766091346741e-11),(9918,24002,42082),"3.4322E+43851")
170T: 383.26s ---FAULTY---
((False,155411.2501,0.0),(77201,27980,14584),"2.80508E+46783")
于 2020-03-22T22:29:26.297 回答
0
我想您可以使用自适应任意精度来计算日志。
如果您选择对数基数 2,那么log2(2^i)
是微不足道的。这消除了 1 个因素,并且 log2 具有比自然对数更容易计算的优点(例如https://en.wikipedia.org/wiki/Binary_logarithm给出了一个算法,还有 Shanks ......)。
对于 log2(3) 和 log2(5),您将开发出足够的术语来区分两个操作数。我不知道它是否会导致比在大整数算术中直接对 3^j 和 5^k 取幂并计算高位更多的操作......但这些可以预先制表到所需的位数。
于 2020-03-23T18:00:43.427 回答