| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3666 人关注过本帖
标题:为什么我的连续随机数生成出来都一样?
只看楼主 加入收藏
soshefore
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-8-15
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
为什么我的连续随机数生成出来都一样?
下面是我网上拷贝的程序,自己做了一些修改,运行后发现x,y数值循环随机生成的都一样。请高手帮忙改下!!不慎感激…………
for(i=0;i<num;i++)                                                                     /*随即生成O点坐标*/
      {  
         unsigned int seedVal;
         struct timeb timeBuf;
         ftime(&timeBuf);
         seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
                 (unsigned int)timeBuf.millitm)^
                 (unsigned int)timeBuf.millitm);
         srand((unsigned int)seedVal);
      x1=rand()%500;
      y1=rand()%500;
         x=x1/1000.0;
         y=y1/1000.0;
         printf("x=%lf,y=%lf\n",x,y);
搜索更多相关主题的帖子: 随机数 循环 相同 
2009-08-16 17:11
soshefore
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-8-15
收藏
得分:0 
各位高手帮帮忙吧,实在是搞不定了
2009-08-16 18:13
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:5 
srand((unsigned int)seedVal); 放错地方了

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2009-08-16 20:31
prankmoon
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:161
专家分:921
注 册:2009-7-21
收藏
得分:5 
srand((unsigned int)time(NULL));
for (i=0; i<num; i++)
{
    ......
    x1 = rand() % 500
    ....
}
把srand放在循环体外面,否则,因为程序执行的很快,时间函数得到的值一样,种子就一样,所以,rand的结果也一样了。

btw:
   srand函数每个程序只需调用一次,而不需要调用多次。要理解srand函数和rand函数的本质。
2009-08-17 12:56
快速回复:为什么我的连续随机数生成出来都一样?
数据加载中...
 
   



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

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