找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: lxzzr

[出题]批处理验证哥得巴赫猜想

[复制链接]
发表于 2009-4-25 22:48:36 | 显示全部楼层
回lhjoanna版主,可能是我的言语没有注意,还请兄弟原谅。但对于超大数来讲,要构建素数表,永远都会存在效率问题,这就
是我的本意。
发表于 2009-4-26 03:23:29 | 显示全部楼层
思路:利用牛顿迭代法快速求出数的平方根近似值,从而最大程度上减少循环次数,算法如下:
    首先我们设要求的这个数为a,它的平方根为x;然后我们一开始令x=a;然后我们进入一个
循环,不断的令x=(x+a/x)/2,就是令x等于 x和a/x的平均值,这样迭代了10次左右就可以得到a
的平方根x的近似值。
因此将本人12楼的代码再次提速如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. rem write by batman on 2009-4-26 3:20 of bbs.bathome.net
  3. set /p a=请输入一个大于6的偶数:
  4. set "t=%time:~,-3%"
  5. for /l %%a in (3,2,%a%) do (
  6.     set /a b=a-%%a,n=0,c=a&call :lp %%a !b!
  7.     if !n! equ 2 (
  8.        echo 开始时间:%t% 结束时间:!time:~,-3!
  9.        echo %a%=%%a+!b!&goto next
  10.     )
  11. )
  12. :next
  13. pause>nul&goto :eof
  14. :lp
  15. for /l %%a in (1,1,10) do set /a c=(c+a/c)/2
  16. for /l %%a in (3,2,%c%) do (
  17.      if %%a neq %1 set /a d=%1%%%%a
  18.      if !d! equ 0 goto :eof
  19. )
  20. set /a n+=1
  21. if "%2" neq "" shift&goto lp
复制代码

[ 本帖最后由 batman 于 2009-4-26 03:29 编辑 ]

评分

参与人数 1PB +5 收起 理由
lxzzr + 5 强人

查看全部评分

发表于 2009-4-30 14:38:04 | 显示全部楼层
支持版主一下,谢谢了。
发表于 2009-5-6 10:01:29 | 显示全部楼层
论坛逛得不多,但是每次来,都能看到各大高手的身手。。拜服
发表于 2009-5-13 08:48:08 | 显示全部楼层
看来我还得好好学学数学哦。顶下各位版主了!真是不积小流,无以成江海啊!
发表于 2009-5-17 22:05:48 | 显示全部楼层
  1. 18楼代码
  2. 请输入一个大于6的偶数:1000000
  3. 开始时间:22:04:42 结束时间:22:04:42
  4. 1000000=17+999983
复制代码
  1. 9楼代码
  2. 请输入一个整数(按i使用内置测试集,直接按回车退出): 999983
  3. 999983 是合数
复制代码
发表于 2009-5-17 22:16:05 | 显示全部楼层

回复 22楼 的帖子

999983应该怎样分解质因数?
发表于 2009-11-29 11:04:41 | 显示全部楼层
原帖由 lhjoanna 于 2009-4-24 22:24 发表
先构造素数表,感觉用批来构造素数表效率很低啊,哪位高手如果能用位来实现就好了。
我也来写一个,先构造素数表,效率问题,只构造了10000以内的。@echo off&setlocal enabledelayedexpansion
echo.&echo 正在构建 ...
输的结果有问题啊!把所有数之和等于所输入偶数的结果都输出了,修改一下更好
发表于 2009-12-8 10:53:25 | 显示全部楼层
虽然发现运算出现部分错误结果,但是还是很佩服各位老大这种高度。
发表于 2010-5-18 17:22:18 | 显示全部楼层
电脑太发达了。批处理太强悍了。牛人太多了。
发表于 2011-5-12 16:10:29 | 显示全部楼层
新手埋头学习中。
发表于 2012-9-10 23:31:52 | 显示全部楼层
老师节日快乐,有个家伙老动我电脑,我怎么知道什么时间,有人在我不在时登陆过我电脑,即使是从锁定后登陆界面登陆的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:05 , Processed in 0.012882 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表