突然觉得,每个人采用的计算时间的方式不一样,根据楼主那样的方式,不具有可比性
应该统一用一种计算时间的方式,才有可比性
-------------程序*酒*人生
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
Dim mcurFreq As Currency, curCounter1 As Currency, curCounter2 As Currency '系统高精度计数器频率
QueryPerformanceFrequency mcurFreq
开始时间:QueryPerformanceCounter curCounter1
结束时间:QueryPerformanceCounter curCounter2
'精确到毫秒
If mcurFreq <> 0 Then'支持高精度计数
curCounter2 = (curCounter2 - curCounter1) / mcurFreq
Else'不支持
curCounter2 = curCounter2 - curCounter1
End If
我是采用上述计算时间间隔的方式,不知楼主怎么计算?计算1000的时候时间间隔那么短有点难以想像
不妨帖出来,我用你的计算方式试试
只能说是到目前为止,我期待计算速度更快的作品出现
仔细检查过vbc的源码,其中忽略了部分数据精确性,在某此情况下可能会出现答案不正确,建议仔细验证算法,如果为了追求速度而丢失数据正确性的话那是不值得的。当然,如果验证所以情况下都没问题的话,那自然不用重写算法了。
[此贴子已经被作者于2007-7-2 16:04:09编辑过]
我也是知什么回事的版主,因为双精度的数据类型的有效数值只有十五位,所以当n的值大于一万之后就会有不准确了.
如果要提高到十万都准确只需将分割的位数减少一位就行了,但这并不会对我的程序速度有多大的影响.
按理论是可以达到10^14准确但这能算下去吗???
无论谁的方法都会有上限,我们关心的只是我们能用得到那部份是否准确??
现在这个我加上了逗号且括大到能精确计算n=十万,但十万用时很长,计算速度跟之前的差不了多少