24小时热门版块排行榜    

查看: 880  |  回复: 10
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

truewz

至尊木虫 (文坛精英)

[交流] 【求助】遇到怪事,同一个C程序两台电脑算的结果不一样

同一个C程序,在3台电脑上计算,其中一台是笔记本电脑,另外两台是台式机。结果,两台台式机的结果一样,笔记本算的结果和它们不一样,奇怪了,哪位达人帮助分析一下原因,谢谢!

[ Last edited by lei0736 on 2008-3-24 at 09:08 ]
回复此楼
扫地虫
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xjli7

木虫 (著名写手)

★ ★
lei0736(金币+2,VIP+0):谢谢参与讨论
有的时候随机数对模拟结果影响还是比较大的,
以前我们实验室有这样的例子,
如果不考虑随机数问题的话,
有篇文章估计发IF>3.0的杂志没问题,
就因为随机数的问题,后来没有投。
7楼2008-03-26 06:08:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

cuihang

铁杆木虫 (正式写手)

VASPer

★ ★
zzgyb(金币+2,VIP+0):谢谢您的参与,欢迎您常来计算模拟版。
肯定和系统环境有关
具体原因不明,不过推荐楼主看看《理解计算机结构》这本书吧,从程序员的角度写的
聪明人知道自己是傻子,傻子以为自己是聪明人
2楼2008-03-23 13:13:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lwwj136

铜虫 (初入文坛)

估计是CPU的位数不一样吧,32位和64的
3楼2008-03-23 21:22:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sandycug

金虫 (小有名气)

★ ★ ★
lei0736(金币+3,VIP+0):谢谢
这个原因有很多,但主要是以下两类:

1、系统编译器的问题,比如gcc跟vc++编译器有差别,而且有可能编译器有问题。这种问题比较隐蔽。可能你运气不好,正好碰上了。但是我认识一个家伙(但是不熟, at theochem, kth)发现了vc++的好几个bug。

2、你的程序涉及到随机数,而且你的程序很可能就是利用电脑本身产生的随机数,所以会有这种差别。如你所知,如果利用机子本身产生的随机数计算东西是很容易出问题的,因为每台机子说到底每次产生的这种随机数都是一样的。所以如果你的程序涉及到随机数的话,你的这个错误就容易理解了,可能你的台式机是同一批产品,而你的笔记本的处理器跟他们差别很大。
4楼2008-03-23 22:19:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见