标题:PK赛第一期[N!连加][级别:中级](考虑期末考试,延期至7月21日结束)
只看楼主
liulang
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-26
得分:0 

呵呵,我也测了好久,以为自己出现buger呢,不过我是在101的时候发现的
另外楼主的时间精确度似乎也很低

2007-06-26 11:46
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
以下是引用随风逐流在2007-6-26 10:49:00的发言:

斑竹,你的程序精确度太差了。虽然速度很快。但是你的程序算到21!就开始错了,不信你看看。
正确的1! + 2! + 3! + 4! + 5! +...+ 20!=2,561,327,494,111,820,313
而21!=51,090,942,171,709,400,000
你的程序算1! + 2! + 3! + 4! + 5! +...+ 21!=53,652,269,665,821,260,313 多出了40000。
在21的时候就有这么大的误差。那到后面误差不是更大?
我说怎么跟我程序算出来的总是不一样。

你用双精度变量做的答案来验证我的程序?
给楼上的一个小提示:6!=720;5!=120;4!=24;3!=6;2!=2;1!=1;
那么也就是说从5!开始所有数的接一乘值的个位肯定为零(至于为什么不用我说吧?),那么N!连加的个位数肯定为3
那么为什么你的会出现个位为0呢?我估计你使用的是双精度变量,而且你还非常的不了解双精度变量的特性。

建议你试试把任意一个接近双精度变量最大值1.79769313486232E308放入一个双精度变量A中,再用MsgBox Format(A, "###,###")试试,这样你就可以很明显的看出到底为什么双精度变量只用了8个字节却能表示比18446744073709551615(十六进制&HFFFFFFFFFFFFFFFF)更大的值了。


VB QQ群:47715789
2007-06-26 11:48
缘子弹
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2007-4-5
得分:0 
以下是引用Joforn在2007-6-26 11:48:34的发言:

你用双精度变量做的答案来验证我的程序?
给楼上的一个小提示:6!=720;5!=120;4!=24;3!=6;2!=2;1!=1;
那么也就是说从5!开始所有数的接一乘值的个位肯定为零(至于为什么不用我说吧?),那么N!连加的个位数肯定为3
那么为什么你的会出现个位为0呢?我估计你使用的是双精度变量,而且你还非常的不了解双精度变量的特性。

建议你试试把任意一个接近双精度变量最大值1.79769313486232E308放入一个双精度变量A中,再用MsgBox Format(A, "###,###")试试,这样你就可以很明显的看出到底为什么双精度变量只用了8个字节却能表示比18446744073709551615(十六进制&HFFFFFFFFFFFFFFFF)更大的值了。

支持Joforn的分析!~
同样支持敢于对向前辈发出挑战和怀疑的所有green hand.!~


对了,Joforn你是不是用上述规律提高计算效率的?

[此贴子已经被作者于2007-6-27 20:47:41编辑过]


2007-06-26 13:28
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
得分:0 

谢谢,又知道一点东西了,我去分析分析


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-06-26 14:44
lhz917
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-22
得分:0 
正在研究。
这几天抽空做一些思考和相关知识的熟悉,基本思路已有。
只是一具体到编程实现,问题还是不少。
有些头大。。。
看来下面几天要多花些时间和精力了。
这道题还是很有水平的。
喜欢设计算法--敲代码--调试--运行,喜欢编程。
感谢编程论坛,让我有这样的机会再次深入学习研究VB。
等我程序编好,再传上来请版主和爱好者们指点。
2007-06-26 21:48
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
以下是引用缘子弹在2007-6-26 13:28:06的发言:

支持Joforn的分析!~
同样支持敢于对向前辈发出挑战和怀疑的所有greed hand.!~


对了,Joforn你是不是用上述规律提高计算效率的?



我只是设计了一个粗糙算法,其精确度为1


VB QQ群:47715789
2007-06-26 21:58
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
得分:0 
冒昧的问下  精确度为1是什么意思?

[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-06-27 14:59
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
只能计算整数。

VB QQ群:47715789
2007-06-27 15:12
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
得分:0 

郁闷,又换了个算法。精度和你一样
但是速度慢了100倍。。。。。。。。。


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-06-27 15:55
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
得分:0 
请xlin1033把编译好的可执行文件在此帖后跟帖发上来。

VB QQ群:47715789
2007-06-27 19:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-148409-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.301417 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved