|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
16 楼』:
这个VBS的很快,不过受VBS限制位数
n=100
for i = 1 to n
str=2+(n+1-i)/((n+1-i)*2+1)*str
next
msgbox str 如果转为批处理则为:
@echo off
setlocal EnableDelayedExpansion
set str=1
for /l %%i in (100,1,1) do set/a str=2+%%i/(%%i*2+1)*!str!
echo %str%
pause 可惜set/a不能计算小数
|
|
|
2008-4-30 17:11 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
『第
17 楼』:
Quote: | Originally posted by zh159 at 2008-4-30 05:11 PM:
这个VBS的很快,不过受VBS限制位数
n=100
for i = 1 to n
str=2+(n+1-i)/((n+1-i)*2+1)*str
next
msgbox str 如果转为批处理则为:
[code]@echo off
setlocal E ... |
|
这用的就是方案2,很好,小数计算你看不得不爱版主的那个代码看怎么样?
|
山外有山,人外有人;低调做人,努力做事。
进入网盘(各种工具)~~ 空间~~cmd学习 |
|
2008-4-30 17:25 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
18 楼』:
'将那个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
此帖被 +10 点积分 点击查看详情 评分人:【 zh159 】 | 分数: +10 | 时间:2008-5-1 00:57 |
|
|
|
2008-4-30 23:35 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
19 楼』:
数字不要太大哦~1000差不多也就1秒~
加个0就…………
Quote: | '将那个C的代码用VBS处理了下,速度很快,因为是
'每位用一个数处理的,所以没有位数限制。
'恩,记得用CScript调用……
'这个是连续运算最后输出,比一行一行的输出速度快。
Dim b, c, d, e,n, f()
n = 1000 '在这里定义位数
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 = ShowLine & vbCrLf
End If
e = d Mod 10000
Loop
WSH.Echo ShowLine |
|
|
|
2008-4-30 23:42 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
20 楼』:
恩,这个算法没有浮点运算哦~
+-*/取余运算。
有功夫的试这改成BAT吧。
没有看最大的数是多少,希望BAT可以支持到。
|
|
2008-4-30 23:50 |
|
|
xtanbmy
初级用户
积分 47
发帖 31
注册 2008-3-17
状态 离线
|
|
2008-5-1 03:51 |
|
|
xtanbmy
初级用户
积分 47
发帖 31
注册 2008-3-17
状态 离线
|
『第
22 楼』:
大虾们,能不能把结果输出到一个文本文件中呀?
|
|
2008-5-1 03:52 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
23 楼』:
Quote: | Originally posted by xtanbmy at 2008-5-1 03:52:
大虾们,能不能把结果输出到一个文本文件中呀? |
|
把SHOWLINE前的echo换成FSO对象,文本读写操作的对象,然后write下……
在CSCRIPT下可以复制结果嘛。。。
|
|
2008-5-1 08:39 |
|
|
PPdos
高级用户
积分 783
发帖 268
注册 2006-12-26
状态 离线
|
『第
24 楼』:
古算术法
Quote: | 355/113=3.1415926535897... |
|
|
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃. |
|
2008-5-1 08:54 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
25 楼』:
Quote: | Originally posted by PPdos at 2008-5-1 08:54:
古算术法
|
|
=。=
你自己打的吧?还是我的CALC有问题呢?
|
|
2008-5-1 09:03 |
|
|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
26 楼』:
Quote: | Originally posted by PPdos at 2008-5-1 08:54:
古算术法
|
|
这个只能精确到6位
|
|
|
2008-5-1 10:13 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
27 楼』:
弱弱的问一句,圆周率 可以理解为 a 除以 b 吗?是两个正整数吗?
貌似那个 1 除以 2003 的代码可以更简单,精确到 任意位小数。(cmd 范围内)
|
致精致简! |
|
2008-5-2 12:02 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
28 楼』:
不存在a/b=Pi的a和b的值……
|
|
2008-5-2 12:15 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
29 楼』:
难怪我看到网上说用 22除以7 ,我用计算器算结果却不对。。
|
致精致简! |
|
2008-5-2 12:19 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
30 楼』:
if "π"=="无理的数" echo π 不可以用分数来表示
|
简单!简单!再简单! |
|
2008-5-2 12:45 |
|