精华内容
下载资源
问答
  • C语言随机函数rand()

    千次阅读 2018-08-05 17:41:08
    随机函数rand()产生的是一个0~RAND_MAX之间的整数 符号常量RAND_MAX是在头文件stdlib.h中定义的,因此使用该函数时需要包含头文件stdlib.h 控制生成随机数的范围 1. 利用求余运算rabd()%b将函数rand()生成的...

    随机函数rand()产生的是一个0~RAND_MAX之间的整数

    符号常量RAND_MAX是在头文件stdlib.h中定义的,因此使用该函数时需要包含头文件stdlib.h

    控制生成随机数的范围
    1. 利用求余运算rabd()%b将函数rand()生成的随机数变化到【0,b-1】之间
    2. 利用rand()%b+a 将随机师傅的取值范围平移到【a,a+b-1】之间

      eg.生成1~100之间的随机数
    
        magic=rand() % 100 + 1;
    展开全文
  • C语言随机函数rand()的用法

    千次阅读 2014-08-23 23:13:42
    首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。  rand(产生随机数)  表头文件: #include  定义函数 :int rand(void)  函数说明 :  因为rand的内部实现是...

    转自:http://blog.csdn.net/shijinupc/article/details/5813628

    rand和srand的用法 

    首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。 
    rand(产生随机数) 
    表头文件: #include 
    定义函数 :int rand(void) 
    函数说明 : 
    因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。 
    返回值: 
    返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。 
    0~RAND_MAX每个数字被选中的机率是相同的。 
    范例: 
    /* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考 
    srand()*/ 
    #include 
    main() 

    int i,j; 
    for(i=0;i<10;i++) 

    j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); 
    printf("%d ",j); 


    执行: 
    9 4 8 8 10 2 4 8 3 6 
    9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数 
    srand(设置随机数种子) 
    表头文件:#include 
    定义函数:void srand (unsigned int seed); 
    函数说明: 
    srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。 
    范例 
    /* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/ 
    #include 
    #include 
    main() 

    int i,j; 
    srand((int)time(0)); 
    for(i=0;i<10;i++) 

    j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); 
    printf(" %d ",j); 


    执行:与rand范例比较 
    5 8 8 8 10 2 10 8 9 9 
    2 9 7 4 10 3 2 10 8 7 
    又或: 
    用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))产生一个0到n之间的随机数 
    int main(void) 

    int i; 
    time_t t; 
    srand((unsigned) time(&t)); 
    printf("Ten random numbers from 0 to 99/n/n"); 
    for(i=0; i<10; i++) 
    printf("%d/n", rand() % 100); 
    return 0; 

    除以上所说的之外,补充一点就是srand这个函数一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的数字。 
    MSDN中的例子。 
    // crt_rand.c 
    // This program seeds the random-number generator 
    // with the time, then displays 10 random integers. 
    // 
    #include 
    #include 
    #include 
    int 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() ); 
    printf("/n"); 
    // Usually, you will want to generate a number in a specific range, 
    // such as 0 to 100, like this: 

    int RANGE_MIN = 0; 
    int RANGE_MAX = 100; 
    for (i = 0; i < 10; i++ ) 

    int rand100 = (((double) rand() / 
    (double) RAND_MAX) * RANGE_MAX + RANGE_MIN); 
    printf( " %6d/n", rand100); 


    总结: 
    我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是 
    初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列, 
    那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数的吧,可能这个起始时间不正确,你查一下对不对吧,C还提供了另一个更方便的函数, randomize() 
    原形是void randomize(),功能是用来始初rand() 的种子的初始值,而且该值是不确定的,它相当于srand((unsign)(time(NULL)) 不过应注意的是randomize()的功能要通过time来实现所以在调用它时头文件要包含time.h罢了
    展开全文
  • #include #include #include main(){int a,b,c;srand((unsigned)time(0) );printf("*****九九乘法测试程序*****\n");...do{a=rand()%9+1;b=rand()%9+1;printf("请输入结果%d*%d=",a,b);scanf("%d",&am...

    #include

    #include

    #include

    main()

    {

    int a,b,c;

    srand((unsigned)time(0) );

    printf("*****九九乘法测试程序*****\n");

    printf("*****结果输入0结束*****\n");

    do

    {

    a=rand()%9+1;

    b=rand()%9+1;

    printf("请输入结果%d*%d=",a,b);

    scanf("%d",&c);

    if(c==a*b)

    printf("你答对了!\n");

    else

    printf("正确结果是%d\n",a*b);

    } while(c>0);

    }

    一、rand()

    rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。

    rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。

    在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。

    rand()函数需要的头文件是:

    rand()函数原型:int rand(void);

    使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100;

    二、srand()

    srand()函数需要的头文件仍然是:

    srand()函数原型:void srand (usigned int seed);

    srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或geypid(0)的返回值作为seed。

    使用rand()和srand()产生1-100以内的随机整数:srand(time(0));

    int number1 = rand() % 100;

    三、使用rand()和srand()产生指定范围内的随机整数的方法

    “模除+加法”的方法

    因为,对于任意数,0<=rand()%(n-m+1)<=n-m

    因此,0+m<=rand()%(n-m+1)+m<=n-m+m

    因此,如要产生[m,n]范围内的随机数num,可用:

    int num=rand()%(n-m+1)+m;

    其中的rand()%(n-m+1)+m算是一个公式,记录一下方便以后查阅。

    比如产生10~30的随机整数:

    srand(time(0));

    int a = rand() % (21)+10;

    展开全文
  • C语言随机函数 rand()\srand()\randomize() 使用总结

    万次阅读 多人点赞 2013-01-04 15:58:09
     2、rand()函数和srand()函数必须配套使用。 (1) rand()函数:  原型: int rand(void)  功能: 产生从0到RAND_MAX(0x7fff)之间的随机数。  头文件: stdlib.h  例:  #include  #i


    说明:

       1、这两个函数都在头文件是stdlib.h中。

       2、rand()函数和srand()函数必须配套使用。


    (1) rand()函数:


       原型: int rand(void)
       功能: 产生从0到RAND_MAX(0x7fff)之间的随机数。
       头文件: stdlib.h
       例:
       #include <stdio.h>
       #include <stdlib.h>

       int main()
       {
           int k;
           k = rand();
           printf("%d\n", k);
           return 0;
       }
       编译运行,发现的确产生随机数了,但是,
    每次运行程序产生的随机数都是一样的,为什么呢?因为随机数取在

    C语言中采用的是固定序列,所以每次执行所取的是同一个数。那么如何写一个程序,让它每次运行时产生的随机数

    都不一样呢?

    (2)srand()函数:


       原型: void srand(unsigned seed)
       功能: 产生随机数的起始发生数据,和rand函数配合使用
       头文件: stdlib.h   time.h
       例:
       #include <stdio.h>
       #include <stdlib.h>
       #include <time.h>

       int main(void)
       {
           int i;
           time_t t;
           srand((unsigned) time(&t));
           printf("Ten random numbers from 0 to 99\n\n");
           for (i=0; i<10; i++)
           printf("%d\n", rand()%100);
           return 0;
       }
        这时运行程序,会发现每次产生的随机数都不一样。
    这是因为这里采用了时间作为种子,而时间在每时每刻都

    不相同,所以就产生了"随机"的随机数了。所以,要想产生不同的随机数,在使用rand之前需要先调用srand。

    这样做相当麻烦,有没一个更简单的函数呢?


    (3)randomize()函数:


       原型: int randomize(void)
       功能: 通过time函数来得到一个随机数
       头文件: stdlib.h   time.h
       该函数就相当于srand((unsign)(time(NULL)) 不过应注意的是randomize()的功能要通过time来实现所以在

    调用它时头文件要包含time.h。


    (4)产生一个X到Y的随机数:


        由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,
    那么如何产生从X~Y的数呢
        只要这样写:
        k=rand()%(Y-X+1)+X;
        这样可以产生任何范围内的随机数。



    展开全文
  • 使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100; 二、srand() srand()函数需要的头文件仍然是: srand()函数原型:void srand (usigned int seed); srand()用来设置rand()产生随机数时的随机数...
  • 前言本文主要讲解C语言随机函数,学习随机函数将由此拉开序幕,亲爱的准备好了没?随机数随机数主要是通过rand()函数产生的,rand() 函数可以随机产生一个正整数,它会产生一个无符号整数,范围在1~32767,即两字节...
  • rand()函数用于产生一个随机数,其内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。调用rand()函数会得到一个在0-RAND_MAX。RAND_MAX在头文件stdlib.h中定义。 2、调用...
  • C语言随机函数使用

    万次阅读 多人点赞 2017-12-07 09:18:33
    rand()和srand()应该是初学者最先接触到的随机函数了,今天博主就这两个函数陈述一下自己的理解。
  • rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言随机并不是真正意义上的随机,有时候也叫伪随机数,使用 rand() 生成随机数之前需要用随机发生器的初始化函数 srand...
  • C语言之随机数函数( rand() )的使用方法

    万次阅读 多人点赞 2018-04-25 19:49:18
    在程序设计中,难免会使用随机函数,其原理与语法大多类似,接下来以C语言为例介绍其随机函数 rand() 用法。 原理 引用百度百科,首先,需要包含头文件: #include &amp;lt;stdlib.h&amp;gt; ...
  • C语言随机函数

    千次阅读 2017-01-25 00:49:55
    一般利用c语言标准函数库stdlib.h中的函数rand和srand实现 rand函数原型: int rand(void) //返回0到RAND_MAX之间的一个伪随机数,RAND_MAX同样stdlib.h中定义 若要实现返回x到y之间的一个随机数,则可如下实现...
  • c语言 随机函数

    2017-02-22 07:11:01
    c语言 随机函数  #include  rand()  srand()  标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。  rand()函数没有输入参数,...
  • rand随机函数参数 相信有很多新手跟我一样不会使用rand函数,不知道该如何确定参数,网上的答案也有点繁琐,这是我确定参数的方法,希望对新手有所帮助吧,直接上代码!! int code = rand() % a + b;//这里的a...
  • c语言随机函数

    2021-01-13 16:13:14
    1.初识随机函数 在实践中,找到真正的随机数字是困难的。数字计算机只能在一个限定的范围内和有限的精度下去处理数字。在大多数情况下,最好的方法是产生伪随机数,这不是真正意义的随机数,它的意义是:单次产生的数列是...
  • #if 1#include #include #include #include #include using namespace std;int main(){int nRandNumber[10];for (int idx = 0; idx < 10; ++idx){nRandNumber[idx]...//取随机数范围为integer 0 ~ RAND_MAX(32767...
  • 我们使用C语言rand函数,生成的也是伪随机数。 c语言rand函数使用 1、写入头文件 #include <stdlib> #include <stdio> #include 2、变量的定义 void main( void ) { int i,k; 3、srand( (unsigned)time( ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,870
精华内容 5,148
关键字:

c语言随机函数rand使用方法

c语言 订阅