中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 开平方(精度为小数点后5位)
作者:
标题: 开平方(精度为小数点后5位) 上一主题 | 下一主题
dreamseed
初级用户




积分 38
发帖 10
注册 2007-10-1
来自 GZ
状态 离线
『楼 主』:  开平方(精度为小数点后5位)

算法思路由 terse 提出。本人扩大了可行域。
@echo off
set /p n=输入待开方数(0~89999999):
set a=2
:acr
set /a a=(n/a+a)/2,b=a*a
if %b% gtr %n% goto :acr
if %b% lss 0 goto acr
if %b% equ %n% goto :ok
set /a t=n-b,k=a
:loop1
set /a t*=100,x=k*20,m=10
:loop2
set /a m-=1,s=m*(m+x)
if %s% gtr %t% goto loop2
set /a t-=s,c+=1,k=k*10+m,r=r*10+m
if %c% lss 5 goto loop1
:ok
if not "%r%" == "" set a=%a%.%r%
echo 结果:%a%
pause>nul
[ Last edited by dreamseed on 2008-4-5 at 05:13 PM ]

   此帖被 +14 点积分        点击查看详情   
评分人:【 plp626 分数: +6  时间:2008-4-5 17:48
评分人:【 knoppix7 分数: +8  时间:2008-4-5 18:33




沉浸于脚本的流浪客。
纳须弥于芥子,容世界之脚本...
2008-4-5 16:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 2 楼』:  set /?



  Quote:
()                  - 分组
! ~ -               - 一元运算符
* / %               - 算数运算符
+ -                 - 算数运算符
<< >>               - 逻辑移位
                   - 按位“与”
^                   - 按位“异”
|                   - 按位“或”
= *= /= %= += -=    - 赋值
  &= ^= |= <<= >>=
,                   - 表达式分隔符

利用逻辑运算符



菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2008-4-5 17:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dreamseed
初级用户




积分 38
发帖 10
注册 2007-10-1
来自 GZ
状态 离线
『第 3 楼』:  

能具体写一个么?



沉浸于脚本的流浪客。
纳须弥于芥子,容世界之脚本...
2008-4-5 17:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 4 楼』:  

批处理搞数学计算尤其是小树 ,还真没研究过,

这样的帖子就当娱乐,可以作为一个小函数备用,

研究下算法
---------------------------
纯计算数学的问题,主要是迭代公式:Xn+1=(Xn+A/Xn)/2  极限----->A^(1/2)

楼主初始时把X1设为2,然后在:acr模块迭代计算A^(1/2)的整数部分,

if %b% lss 0 goto acr不是多余的,用来防止溢出为负数,我疏忽了

另外将X1设为n/2可以减少迭代次数,

后面计算小数,谁分析下,我没耐心了

[ Last edited by plp626 on 2008-4-5 at 06:46 PM ]



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-4-5 18:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xtanbmy
初级用户




积分 47
发帖 31
注册 2008-3-17
状态 离线
『第 5 楼』:  

下一个看一下,谢谢。

2008-4-7 19:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: