| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1537 人关注过本帖
标题:关于rand()随即函数的使用
只看楼主 加入收藏
witchery
Rank: 1
来 自:西安
等 级:新手上路
帖 子:205
专家分:0
注 册:2005-8-6
收藏
 问题点数:0 回复次数:8 
关于rand()随即函数的使用
在使用rand()产生随即数时经常会发现每次产生的数值总是一样。
那时因为用rand()产生的是伪随即数,伪随即数的产生需要用 随即数种子来控制 种子相同伪随即数的排列顺序不便,而且当不对种子进行设置其默认制为 1 . 所以每次产生的随即数总是一样。
    伪随即数是用srand(unsigned int )函数产生。
   e.g:
         #include<iostream>
          using namespace std;
          main()
         {
           int seed ;
           cin>>seed;        //随即数种子输入
           srand(seed);
           cout<<rand();
          }
  如有错误和补充  恳请高手指点  

           
        
搜索更多相关主题的帖子: rand 函数 
2005-08-07 11:39
ぷ螞蟻じpoPo
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2005-6-7
收藏
得分:0 
谢谢你,我初学者,这个我以前练习提有过,但不明白!
这次让我有跟深些的认识!
对了,伪随即数有长度限制吗?

爱骗人的女人,给老子趁早滚开。 不知道爱情是啥玩意的,你就回家去种菜。 只认识钱的女人,你就床上呆着去。 只回被爱不回爱别人的女人(还是人吗)
2005-08-07 13:50
apodemas
Rank: 1
等 级:新手上路
帖 子:153
专家分:0
注 册:2005-4-22
收藏
得分:0 
我也谢谢了,但不明白设定的seed到底和rand()除了决定排列还有什么关系?我试的时候只知道seed不一样随机数就不一样,但seed一样随机数一样还是没实现真正的随机啊?

2005-08-07 19:28
witchery
Rank: 1
来 自:西安
等 级:新手上路
帖 子:205
专家分:0
注 册:2005-8-6
收藏
得分:0 
srand() 函数中的参数用时间就行了,每一时刻的时间总是不一样的,那seed 就不可能保持一致。
2005-08-14 12:57
realoneyjw
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2005-5-13
收藏
得分:0 
谢了

我一直告诫自己:要做一个踏实认真的人 E-mail:realoneyjw@ qq:18238423
2005-08-27 19:58
qqiq100
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-8-27
收藏
得分:0 
#include<iostream> #include <time.h> //加上这个 #include <stdlib.h> //加上这个 using namespace std;
2005-08-27 20:14
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
http://msdn.
see link above

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-28 01:34
witchery
Rank: 1
来 自:西安
等 级:新手上路
帖 子:205
专家分:0
注 册:2005-8-6
收藏
得分:0 

/* RAND.C: This program seeds the random-number generator * with the time, then displays 10 random integers. */#include <stdlib.h>#include <stdio.h>#include <time.h>void main( void ){   int i;   /* Seed the random-number generator with current time so that    * the numbers will be different every time we run.    */   srand( (unsigned)time( NULL ) );   /* Display 10 numbers. */   for( i = 0;   i < 10;i++ )      printf( "  %6d\n", rand() );}

Output

    6929    8026   21987   30734   20587    6699   22034   25051    7988   10104
2005-08-29 21:45
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
witchery, 你呵呵呵地傻笑个什么?

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-08-29 22:29
快速回复:关于rand()随即函数的使用
数据加载中...
 
   



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

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