标题:关于rand()
只看楼主
思安玉
Rank: 2
来 自:安徽宿州泗县
等 级:论坛游民
帖 子:15
专家分:16
注 册:2010-11-1
结帖率:100%
已结贴  问题点数:20 回复次数:12 
关于rand()
我想问下
for(i=1;i<9;i++) printf("%d",rand()%100);  所得结果是不是一样的 ???????我是了不是 ,我想问下在什么情况下会出现我说的情况,谢谢了!!
搜索更多相关主题的帖子: rand 
2010-12-06 17:42
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:5 
程序代码:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
   srand(time(NULL));
   for(int i=1;i<9;i++)
       printf("%d ",rand()%100); 
   return 0;
}
再去试试  看看还一样吗?

                                         
===========深入<----------------->浅出============
2010-12-06 17:46
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:1 
srand(time(0));也可以
2010-12-06 17:47
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:0 
srand是什么函数?

我是初学者
2010-12-06 17:53
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
得分:0 
看到过类似的东西 不很懂 同问

粗心是大敌
2010-12-06 17:55
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:0 
其实随机数 是一定顺序的随机数的集合
所以要借助系统时间 得到完全不同的随机数
2010-12-06 18:15
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
得分:0 
书上就是这样说的  不明白的说
比如做一个0到9的随机 随机10次数字不重复,怎么做啊?

粗心是大敌
2010-12-06 18:25
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:8 
程序代码:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
   srand(time(NULL));
   int a[5];
   int temp;
   bool flag=false;
   for(int i=0;i<5;i++)
   {
       temp=rand()%5;
       for(int j=0;j<i;j++)
       {
           if(a[j]==temp)
           {
               flag=true;
           }
       }
       if(!flag)
       a[i]=temp;
       else
       {
           flag=false;
           --i;
           continue;
       }
   }
   for(int k=0;k<5;k++)
       printf("%d ",a[k]);
   return 0;
}

7楼的  试试去  绝对不重复

                                         
===========深入<----------------->浅出============
2010-12-06 20:21
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
得分:3 
呵呵 大体看了下  不知楼上的是不是这个意思 就是随机一个数,用数组记录下,再随机一个数,与前面随机的数比较,一样的话则重新随机,不一样的话则记录入数组。这个方法我倒是会,不过还是不明白助系统时间 得到完全不同的随机数的意思 。呵呵 本人比较菜,不对之处见谅

粗心是大敌
2010-12-06 21:01
fy7518716
Rank: 2
等 级:论坛游民
帖 子:8
专家分:24
注 册:2008-6-17
得分:3 
srand() 函数是设置随机数种子,不设置的话得到的随机数是相同的,当然你设置来相同的随机数种子,得到的随机数也依然是相同的
之所以经常见到srand(time(NULL)) 这样的用法,是因为当前时间不可能是相同的,所以用当前时间作为随机数种子得到的随机数才会是你所期望的,每此都不一样。
2010-12-08 16:31



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




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

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