无心人
发表于 2008-7-10 08:13:55
我想,做这个题目
用HugeCalc不如单纯的支持
64位整数的C快
另外,暴力搜索到10^16是否合适????
gxqcn
发表于 2008-7-10 08:15:23
赞同楼上观点。:b:
mathe
发表于 2008-7-10 08:16:09
原帖由 gxqcn 于 2008-7-9 10:09 发表 http://bbs.emath.ac.cn/images/common/back.gif
找出一条规律:
27…7(n个7)88…8(n+1个8)9 是 16…6(n个6)7 的平方。
该规律虽无法保证得到S(15n+19)的下限,但对缩小下限却很有帮助,
因为除了首位2以外,其它都是相对很大的数字。
这个结论还有一个用处是证明了对于15n+19,存在平方数数字和为这么多。
类似,我们还可以通过166..61,166...62,...,166...69得出类似规律,从而得到另外一些数也存在平方数数字和为这些数字。
不过还不能覆盖所有的自然数。如果能够在找出一些有规律的数,就可能可以证明题目中的猜想。
mathe
发表于 2008-7-10 08:17:15
原帖由 无心人 于 2008-7-10 08:13 发表 http://bbs.emath.ac.cn/images/common/back.gif
我想,做这个题目
用HugeCalc不如单纯的支持
64位整数的C快
另外,暴力搜索到10^16是否合适????
平方数的题目比较合适。素数的题目有难度,这么大范围的素数不好求呀。
无心人
发表于 2008-7-10 08:17:49
:)
或者使用反向递归法从最小可能向上递归
首先固定首位,再考虑末位
末位只能是1,4,5,6,9
而最大位数=(s - 2)
最小位数=(s-10)/9
无心人
发表于 2008-7-10 08:19:40
刚考虑了
每秒最低速度能达到100万
最大速度估计在1000万
无心人
发表于 2008-7-10 08:20:58
或者说
如果编码精细的话
最多一个小时的运算时间
最少可能是10分钟
可惜我一会要出门
呵呵
本来有兴趣作的
gxqcn
发表于 2008-7-10 08:23:13
回复 24# mathe 的帖子
可以通过HugeCalc得到素数(32位下的可分段获取),而后转换成常规类型,
至于统计数字之和,可以分成两部分:
前部分是大于32bit时必须用UINT64,而后的仅用UINT32即可。
要是有64bit的HugeCalc推出就不存在上述问题了。:lol
无心人
发表于 2008-7-10 08:23:24
对小于等于16*9的可以考虑暴力搜索
很大的,就考虑25#的方法吧
kofeffect
发表于 2008-7-10 08:27:50
原帖由 mathe 于 2008-7-10 08:11 发表 http://bbs.emath.ac.cn/images/common/back.gif
C/C++写的代码?要运行多长时间?
C代码(我的代码都不会优化,不好!)
前面的时间还好
要算到下面这个就耗了挺长时间,
n sum a(n)
42 64 19999999
下一个不知何时出来,俺关机了:)
页:
1
2
[3]
4
5
6
7
8
9
10
11
12