![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 14:22 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【厉害】纯批计算圆周率,精确到小数点100位 |
| 可打印版本 3,529 / 32 |
| 第16楼 zh159 | 发表于 2008-04-30 17:11 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
这个VBS的很快,不过受VBS限制位数
如果转为批处理则为: 可惜set/a不能计算小数 |
|
| 第17楼 plp626 | 发表于 2008-04-30 17:25 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by zh159 at 2008-4-30 05:11 PM: |
|
| 第18楼 slore | 发表于 2008-04-30 23:35 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
'将那个C的代码用VBS处理了下,速度很快,因为是
'每位用一个数处理的,所以没有位数限制。 '恩,记得用CScript调用…… Dim b, c, d, e,n, f() n = 100 '在这里定义位数 c = n / 4 * 14 ReDim f(c) For b = 0 To c f(b) = 2000 Next Do While(c) b = c d = f(b) * 10000 f(b) = d Mod (b * 2 - 1) d = d \ (b * 2 - 1) b = b - 1 Do While(b) d = d * b + f(b) * 10000 f(b) = d Mod (b * 2 - 1) d = d \ (b * 2 - 1) b = b - 1 Loop c = c - 14 i = e + d \ 10000 i = Right("0000" & i,4) If k < 10 Then k = k + 1 ShowLine = ShowLine & i Else k = 0 WSH.Echo ShowLine ShowLine = "" End If e = d Mod 10000 Loop WSH.Echo ShowLine |
|
| 第19楼 slore | 发表于 2008-04-30 23:42 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
数字不要太大哦~1000差不多也就1秒~
加个0就…………
|
|
| 第20楼 slore | 发表于 2008-04-30 23:50 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
恩,这个算法没有浮点运算哦~
+-*/取余运算。 有功夫的试这改成BAT吧。 没有看最大的数是多少,希望BAT可以支持到。 |
|
| 第21楼 xtanbmy | 发表于 2008-05-01 03:51 |
| 初级用户 发帖 31 积分 47 | |
|
好牛X,膜拜了!
|
|
| 第22楼 xtanbmy | 发表于 2008-05-01 03:52 |
| 初级用户 发帖 31 积分 47 | |
|
大虾们,能不能把结果输出到一个文本文件中呀?
|
|
| 第23楼 slore | 发表于 2008-05-01 08:39 |
| 铂金会员 发帖 2,478 积分 5,212 | |
Originally posted by xtanbmy at 2008-5-1 03:52: 把SHOWLINE前的echo换成FSO对象,文本读写操作的对象,然后write下…… 在CSCRIPT下可以复制结果嘛。。。 |
|
| 第24楼 PPdos | 发表于 2008-05-01 08:54 |
| 高级用户 发帖 268 积分 783 | |
|
古算术法
355/113=3.1415926535897... |
|
| 第25楼 slore | 发表于 2008-05-01 09:03 |
| 铂金会员 发帖 2,478 积分 5,212 | |
Originally posted by PPdos at 2008-5-1 08:54: =。= 你自己打的吧?还是我的CALC有问题呢? |
|
| 第26楼 zh159 | 发表于 2008-05-01 10:13 |
| 金牌会员 发帖 1,467 积分 3,687 | |
Originally posted by PPdos at 2008-5-1 08:54: 这个只能精确到6位 |
|
| 第27楼 26933062 | 发表于 2008-05-02 12:02 |
| 银牌会员 发帖 879 积分 2,268 | |
|
弱弱的问一句,圆周率 可以理解为 a 除以 b 吗?是两个正整数吗?
貌似那个 1 除以 2003 的代码可以更简单,精确到 任意位小数。(cmd 范围内) |
|
| 第28楼 slore | 发表于 2008-05-02 12:15 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
不存在a/b=Pi的a和b的值……
|
|
| 第29楼 26933062 | 发表于 2008-05-02 12:19 |
| 银牌会员 发帖 879 积分 2,268 | |
|
难怪我看到网上说用 22除以7 ,我用计算器算结果却不对。。
|
|
| 第30楼 terse | 发表于 2008-05-02 12:45 |
| 银牌会员 发帖 946 积分 2,404 | |
|
if "π"=="无理的数" echo π 不可以用分数来表示
|
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |