![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 12:35 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 【厉害】纯批计算圆周率,精确到小数点100位 |
| 可打印版本 3,517 / 32 |
| 第1楼 plp626 | 发表于 2008-04-30 11:01 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
【厉害】纯批计算圆周率,精确到小数点100位 给大家出了个题目^_^,比较难,
没有任何实用价值,只为提供挑战平台。 [ Last edited by plp626 on 2009-11-30 at 14:33 ] |
|
| 第2楼 plp626 | 发表于 2008-04-30 13:48 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
好久没来现在附代码如下:此贴已结!
[ Last edited by plp626 on 2010-10-5 at 15:31 ] |
|
| 第3楼 zh159 | 发表于 2008-04-30 13:58 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
说实话,我不知道圆周率是怎样计算的^_^
|
|
| 第4楼 Climbing | 发表于 2008-04-30 14:09 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
呵呵,我也不知道。
|
|
| 第5楼 Climbing | 发表于 2008-04-30 14:11 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
其实,没有所谓的纯批处理,所谓的纯只是限定用系统内置的命令(包括外部命令)。所以,只要将相关的外部命令(例如汇编程序)用批处理写入磁盘,然后调用,也就是纯批处理。这个应该不是很难吧?
[ Last edited by Climbing on 2008-4-30 at 02:12 PM ] |
|
| 第6楼 plp626 | 发表于 2008-04-30 14:17 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
......
[ Last edited by plp626 on 2008-5-1 at 06:45 PM ] |
|
| 第7楼 plp626 | 发表于 2008-04-30 14:43 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by Climbing at 2008-4-30 02:11 PM: 那个可能更复杂了,你不觉得吗?set位运行,/a参数不是现成的工具吗? |
|
| 第8楼 HAT | 发表于 2008-04-30 14:43 |
| 版主 发帖 5,017 积分 9,023 | |
|
大学里的微积分知识全都还给老师了,看到就头晕。
|
|
| 第9楼 ansipeter | 发表于 2008-04-30 15:20 |
| 中级用户 发帖 130 积分 269 | |
|
我都不知道圆周率是什么东西,小的中学毕业,唉,惭愧
|
|
| 第10楼 zh159 | 发表于 2008-04-30 15:51 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
网上找到的一段VBS的圆周率计算说明
Atn 函数返回数值的反正切值。 这是一段计算圆周率的VBS,不过很费时,我的机子花了30多秒才计算了6位(Abs(t) > 0.0000001,小数点后有多少个0,就精确到多少位) |
|
| 第11楼 plp626 | 发表于 2008-04-30 16:02 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
C 语言的:
这个强悍,一瞬间(不到1秒)输出800位(已更正): 原帖:http://wangcong.org/articles/puzzle.html (上面代码和这个一样)这个大家能看懂(用的就是方案2): 要真想算100位小数就得有好算法,即使高级语言也不例外,C能提供的实型数据最高精度也才19位(查书),这个代码是把每步除法的的余数存放在数组里,保证不会有截断误差, 那这么看来,只要P能实现任意位数, 的两个整数除法,我们就可以用第二个方案算出Pi. ------------------------------------------------- baidu批处理吧搜的分数化小数(或循环小数即任意精度),对分子分母不超过2^30的分数可行: http://tieba.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=1180921912&z=137039382&pn=0&rn=50&lm=0&word=%C5%FA%B4%A6%C0%ED#1180921912 咱论坛不得不爱版主有个算整数除法的代码,支持被除数任意位数,除数不超过8位数的(102楼): http://www.cn-dos.net/forum/viewthread.php?tid=23568&fpage=1&highlight=%E9%99%A4%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B0%E5%AD%97%E5%A4%96&page=7 似乎快达到我们的要求? [ Last edited by plp626 on 2008-4-30 at 05:04 PM ] |
|
| 第12楼 slore | 发表于 2008-04-30 16:35 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
C 语言的:
这个强悍,一瞬间(不到1秒)输出2800位: 代码不知道你调试了没?反正看着是有错误。代码输出的是余数?貌似全是0 for的那部分有错误。。 如果对的话,还想改成VBS看看速度呢。 zh159的VBS不要用while,直接用for i=0 to 1000000....next 这个才3秒多就14位了。 改大点就好了。 不过……貌似还是14位……还是数据类型不好呀。 |
|
| 第13楼 BWSkyer | 发表于 2008-04-30 16:38 |
| 中级用户 发帖 180 积分 367 来自 重庆 | |
|
沒有看懂, 大學就沒有去學微積分~~~
|
|
| 第14楼 plp626 | 发表于 2008-04-30 16:42 |
| 银牌会员 发帖 1,020 积分 2,278 | |
Originally posted by slore at 2008-4-30 04:35 PM: 调试了,有源代码,exe文件在此。 http://upload.cn-dos.net/img/345.rar 你没加头文件#include <stdio.h>? 我粘贴有点匆忙,现在补上了。 [ Last edited by plp626 on 2008-4-30 at 05:16 PM ] |
|
| 第15楼 slore | 发表于 2008-04-30 16:49 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你看FOR语句就不对^b f[b]
不过找到了代码了。 #include <stdio.h> long a=10000,b,c=2800,d,e,f[2801],g; void main() { for(;b-c;) f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%04d",e+d/a),e=d%a) for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); } 但是这个是(2800/14)*4位…… |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |