哥德巴赫奇数猜想计算
奇数猜想介绍http://baike.baidu.com/view/1808.htm
现在的问题:对于给定的奇数N(N >= 9, N < 10^9)
求出 三元数(P1,P2,P3)的数目T(N),满足 P1+ P2 + P3 = N
且P1 <= P2 <= P3.
程序刚完成,性能不满意,计算范围也太小。 筛法? 计算规模较小筛法都不用了
主要还是算法和代码优化吧 10^9大小的素数用一个字节保存30k + 1..29内的素数
大概需要33333333字节保存
即32M的信息
而预先生成这个文件
不会超过30秒
甚至如果利用这个论坛的高效程序
10秒也可以
然后每次计算可以把这个文件读入内存 至于具体的搜索某个奇数N的信息
假设固定首项素数是P
则问题转化成N - P
的哥德巴赫猜想的解数
仅是一个(N - P) / 60 个字节的线性搜索过程
如果有快速的位移动算法
则有很精妙的一个解法!!!!
如果采取预先计算的方法
更有一个特别快的算法
不过,需要占很大的内存
有4G内存可以考虑 你这个算法性能不会太好,试试计算10^7+1就知道了 假设抛弃整体计算
对某个偶数N计算哥德巴赫解数量
先获得小于等于N的素数的位数组
其长度是N, 起始数字是0
0表示非,1表示是
则假设正序排列的数组是A1
对A1倒序,得到A2
求A = A1 and A2 逐位与
则,A数组的1的数量即为解的数量 我的程序就是你基于你上面算法的
实现, 性能依旧不满意, 不知是否有更好
的办法 :b:
你让别人花金币买你的代码给你修改
呵呵 :L
不是代码?
给出代码来
页:
[1]
2