24小时热门版块排行榜    

查看: 879  |  回复: 10
当前主题已经存档。

truewz

至尊木虫 (文坛精英)

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

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

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

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的回帖

xjli7

木虫 (著名写手)


zzgyb(金币+1,VIP+0):谢谢你的参与,欢迎继续关注计算模拟版!
同意楼上的,以前遇到过这样的问题,做分子模拟的有一个好的随机数发生器很关键。
建议楼主换个随机数发生器试试,
顺祝好运~
5楼2008-03-24 22:29:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fah

铁杆木虫 (著名写手)

随机数的影响有这么大吗?
感觉应该是编译器的问题
6楼2008-03-25 19:19:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xjli7

木虫 (著名写手)

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

itmwk

新虫 (初入文坛)

lz运行环境是什么??
8楼2008-03-26 09:12:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

truewz

至尊木虫 (文坛精英)

谢谢大家,应该是随机数发生器的问题,但是以哪台电脑算的为准呢?:(
计算结果差别比较大,一个算出来是26一个算出来是34
扫地虫
9楼2008-03-26 20:20:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

truewz

至尊木虫 (文坛精英)

我用的发生器不是用rand()产生的,应该和时钟没有关系
扫地虫
10楼2008-03-26 20:21:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 truewz 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见