А вот что говорит RockMover, который решал эту задачу на компьютере: Следующая пара - 4 и 61, она появляется, когда наибольшее допустимое число - 437. (Если я ничего не напутал). В диапазоне примерно до 800 появляется еще пара (32, 131), а пара (16, 73) - только когда диапазон больше 900.
其实还有一个更普遍的观察(可以从MD 的打印结果中看出):可能所有合理的选择都被限制在2^n和p(素数)这一对数字上。我没有证明这一点,我只是假设。
现在,基于这一假设,让我们做一些实事。在智者的对话中,最困难的是最后一句话。这是到目前为止需要考虑许多选项的一个。让我们假设我们已经有了三个副本,只剩下最后一个。MDS的多少个和可以表示为2^n+素数?
为什么要进行这种特殊的分解?只是因为最后一行的B,考虑到和的可能分解(见我之前的帖子)和相应的产品,遇到了产品2*...*2*simple,已经预先知道它的和中只有一个是可以接受的,因为只有一个是奇数--如果数字等于2的幂和奇数素数。这立即给了一个真正的候选人。
所以,我们走吧。
11 = 2^2+7 = 2^3+3.有两个候选人。一下子很无奈。
17 = 2^2+13.现在已经没有这样的材料了。好的候选人。
23 = 2^2+19 = 2^4+7.遗憾的是。
27 = 2^2+23 = 2^3+19 = 2^4+11.更加无奈的是。
29 = 2^4+13.独自提交。另一位候选人。
35 = 2^2+31 = 2^4+19 = 2^5+3.遗憾的是。
37 = 2^3+29 = 2^5+5 .遗憾的是。
41 = 2^2 +37. 提交 单数。候选人。
47 = 2^2+43 = 2^4+31.遗憾的是。
51 = 2^2+47 = 2^3+43 .遗憾的是。
53 = 2^4+37. 提交是单一的。候选人。
所以在所有的MDS中,我们只剩下4个可接受的和--17、29、41、53。
____________________________________________________________
有了17,我们就处理了:B,有了17,就能在第四个副本中唯一地计算出数字。
待续。我们只剩下三个数字需要分析来完成问题。
__________________________________
P.S. 让我们把所有4个数字都做得简短而优雅,毕竟。让我们假设已经说了三句,只剩下圣人B的最后一步棋。让我们从不会通过的开始,快速进入主棋。
29 = 4+25.П (=2*2*5*5) = 2*50 = 4*25 = 5*20 = 10*10.总数为52,29,25,20。只有绿色清单中的29个是合适的。这是一个个位数的解决方案,即候选人(数字4和25)。然而,我们已经有的另一个个位数是16和13。所以B不会说他的台词。
41 = 16+25.П (=2*2*2*2*5*5) = 2*200 = 4*100 = 5*80 = 8*50 = 10*40 = 16*25 = 20*20.总数为202,104,85,58,50,41 ,40。 唯一允许的是41,即候选人(数字16和25)。 然而,我们已经有的另一个个位数是4和37。所以B不会说他的台词。
53 = 13+40.П (=2*2*2*5*13) = 2*260 = 4*130 = 5*104 = 8*65 = 10*52 = 13*40 = 20*26.数额为262、134、109、73、62、53 、46。唯一允许的总和当然是53(原始数字是13和40)。然而,我们已经有的另一个个位数是16和37。所以B不会说他的台词。
最后,17。还没有想出一个简短的解决方案有效性的证明。我在想。我稍后会把证明的全部内容整理出来,这样就可以在一个帖子里了。但问题--现在,现在--已经完全解决了。
发现了这个错误。这就是所谓的过度优化。:)
有一个地方出现了不完整的超限,一个不正确的循环结束条件。修正了它。
// 见第68-69行。
// for(uint i=2;i<=sqrt(n);i++) // ERROR!!!
for(uint i=2;i<n/2;i++) // 这是对的。
现在的结果让人吃惊。
解决方案是唯一的(S=17;P=52;a=4;b=13),最大和==867
在max sum == 868的情况下,有两种解决方案。
这里是打印出来的。
2011.01.15 18:33:11 MetaSage (EURUSD,M1) //+---- 最大总和=867 -------------------+
2011.01.15 18:33:10 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 18:33:10 MetaSage (EURUSD,M1) //+---- 最大金额 = 867 -------------------+
2011.01.15 18:33:10 MetaSage (EURUSD,M1) //============== START ========================
2011.01.15 18:32:59 MetaSage (EURUSD,M1) //+---- Max = 868 -------------------+
2011.01.15 18:32:59 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 18:32:59 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 18:32:59 MetaSage (EURUSD,M1) //+---- Max = 868 -------------------+
2011.01.15 18:32:59 MetaSage (EURUSD,M1) //============== START ========================
因此,这项任务有巨大的潜力,而不是一些麻雀虽小五脏俱全。找到了这段文字。
А вот что говорит RockMover, который решал эту задачу на компьютере: Следующая пара - 4 и 61, она появляется, когда наибольшее допустимое число - 437. (Если я ничего не напутал). В диапазоне примерно до 800 появляется еще пара (32, 131), а пара (16, 73) - только когда диапазон больше 900.
我没有更精确地检查,因为计算机的性能很慢,我不能使用Cray I超级计算机,因为首先我必须带人离开工作,其次反正是周末。
MD,跑到几千的时候,嗯?
下一篇:1503(2个决定)/1504(3个决定)的前线
2011.01.15 18:50:34 MetaSage (EURUSD,M1) //+---- Max = 1504 -------------------+
2011.01.15 18:50:34 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 18:50:34 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 18:50:34 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 18:50:34 MetaSage (EURUSD,M1) //+---- Max = 1504 -------------------+
2011.01.15 18:50:34 MetaSage (EURUSD,M1) //============== START ========================
2011.01.15 18:50:10 MetaSage (EURUSD,M1) //+---- 最大金额=1503 -------------------+
2011.01.15 18:50:09 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 18:50:09 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 18:50:09 MetaSage (EURUSD,M1) //+---- 最大金额=1503 -------------------+
阿列克谢 > "最后是17。还没有想出一个简短的解决方案有效性的证明。我想。"
好吧,这里不会有一个简短的,因为整个对话是正确的。它需要一个完整的演练。"Bae..."
因此,这项任务有巨大的潜力,而不是一些麻雀虽小五脏俱全。找到了这段文字。
MD,跑到几千的时候,嗯?
衷心感谢ValS 将这样一个伟大而古老的...bojang.
同时,我提议给这个问题冠以支部中最酷的称号。
MD,好吧,我自己来办。还没有 :)
在两千4个解决方案,但我没有寻找边界--电脑很慢,手动翻阅边界很繁琐。
2011.01.15 18:59:14 MetaSage (EURUSD,M1) S=163; P=4192; a=32; b=131
2011.01.15 18:59:14 14 MetaSage (EURUSD,M1) S=89; P=1168; a=16; b=73
2011.01.15 18:59:14 14 MetaSage (EURUSD,M1) S=65; P=244; a=4; b=61
2011.01.15 18:59:14 14 MetaSage (EURUSD,M1) S=17; P=52; a=4; b=13
2011.01.15 18:59:14 MetaSage (EURUSD,M1) //+---- Max = 2000 -------------------+
也许一开始就很慢,因为乘法器分解表太大了。
我有一个大小为SMax*(SMax-1)的表格,以备不时之需。我看看能不能把它缩小到一个较小的尺寸。我需要一个最大乘积的法则...:))
1.衷心感谢ValS 将这样一个伟大而古老的...bojang.
2.同时,我提议给这个问题冠以支部中最酷的称号。
3.MD,好吧,我自己来办。还没有 :)
Mathemat:
因此,这项任务有巨大的潜力,而不是一些麻雀虽小五脏俱全。找到了这段文字。
而在电脑上解决这个问题的RockMover是这样说的:下一对是4和61,它出现时最大的可能数字是437。(如果我没有弄错的话)。另一对(32,131)出现在800左右的范围内,而这对(16,73)只在范围大于900时出现。
我没有更精确地检查,因为计算机的性能很慢,我不能使用Cray I超级计算机,因为首先我得把人从工作中带走,其次反正是周末了。
总的来说,你必须取消对金额的限制。所有的推理在本质上保持不变,只是更多的推理。
从这个事实来看,在引用这个人需要Cray 1的时候,他的算法没有你的算法优化。)