srand 订阅
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);srand和rand()配合使用产生伪随机数序列。 展开全文
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);srand和rand()配合使用产生伪随机数序列。
信息
属    性
函数
原    型
void srand(unsigned int seed);
外文名
srand
含    义
随机数发生器的初始化函数
用    途
编程
srand简介
语法:void srand (unsigned seed);参数说明:unsigned seed:随机数产生器的初始值(种子值)。功能说明:srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何其它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。 [1]  此函数可以设定rand函数所用的随机数产生演算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。 [2]  包含文件:stdlib. h返回值:无相关函数:rand,random ,randomize
收起全文
精华内容
下载资源
问答
  • srand

    2011-08-04 13:57:35
    srand functions void srand ( unsigned int seed ); Initialize random number generator The pseudo-random number generator is i

    srand

    functions
    <cstdlib>
    void srand ( unsigned int seed );

    Initialize random number generator

    The pseudo-random number generator is initialized using the argument passed as seed.

    For every different seed value used in a call to srand, the pseudo-random number generator can be expected to generate a different succession of results in the subsequent calls to rand.
    Two different initializations with the same seed, instructs the pseudo-random generator to generate the same succession of results for the subsequent calls to rand in both cases.

    If seed is set to 1, the generator is reinitialized to its initial value and produces the same values as before any call to rand or srand.

    In order to generate random-like numbers, srand is usually initialized to some distinctive value, like those related with the execution time. For example, the value returned by the function time (declared in header <ctime>) is different each second, which is distinctive enough for most randoming needs.

    Parameters

    seed
    An integer value to be used as seed by the pseudo-random number generator algorithm.

    Return Value

    (none)

    Example

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /* srand example */
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main ()
    {
      printf ("First number: %d\n", rand() % 100);
      srand ( time(NULL) );
      printf ("Random number: %d\n", rand() % 100);
      srand ( 1 );
      printf ("Again the first number: %d\n", rand() %100);
    
      return 0;
    }


    Output:
    
    First number: 41
    Random number: 13
    Again the first number: 41
    

    See also


    展开全文
  • srand?

    2020-11-22 05:51:10
    <div><p>Can you remove the call to srand? That gives me the willies. Thanks!</p><p>该提问来源于开源项目:kgn/KGNoise</p></div>
  • Srand函数

    2021-04-13 14:39:18
    Srand函数用法 srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); 用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的...
     
    Srand函数用法

    srand函数是随机数发生器的初始化函数。

    原型:void srand(unsigned seed);

    用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的数据。

    进一步说明下:计算机并不能产生真正的随机数,而是已经编写好的一些无规则排列的数字存储在电脑里,把这些数字划分为若干相等的N份,并为每份加上一个编号用srand()函数获取这个编号,然后rand()就按顺序获取这些数字,当srand()的参数值固定的时候,rand()获得的数也是固定的,所以一般srand的参数用time(NULL),因为系统的时间一直在变,所以rand()获得的数,也就一直在变,相当于是随机数了。只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。 即:只需在主程序开始处调用srand((unsigned)time(NULL)); 后面直接用rand就可以了。不要在for等循环放置srand((unsigned)time(NULL));

     void test_rand(void)
         {
               unsigned long n;
              srand((unsigned)time(NULL));
              for(int i = 0; i < 100; i++)
              {
                    n = rand();
                    printf("d\n", n);
               }
    }
    
    展开全文
  • srand函数

    2019-10-05 09:14:08
    srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); 用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接...
    srand函数是随机数发生器的初始化函数。
      原型:void srand(unsigned seed);
      用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的。
    追问
    srand(1)直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化//初始化为srand(0)呢?也会随机数重复?你说的重复是 重复出现初始化的数?所以传时间进去,
    要是随即时间,传数进去?
    上面程序要改成srand((unsigned) time(&t));//直接加上这句就行?
    回答
    电脑的随机数都是伪随机,也就是通过一定的算法得出一个数列,然后每 rand()一次就取一个数。
    而srand()的功能就是就是设置产生随机数的公式的参数(随机数种子),如果使用相同的种子,那么得到的随机数也就是相同的。自然,如果使用不同的种子,得出的随机数序列也是不同的。
    不同的种子会得到 固定 的 不同的随机数序列。

    例如:
    void main()
    {
    srand(1);
    cout<<rand()<<endl;
    cout<<rand()<<endl;
    srand(1);
    cout<<rand()<<endl;
    cout<<rand()<<endl;
    srand(2);
    cout<<rand()<<endl;
    cout<<rand()<<endl;
    srand(2);
    cout<<rand()<<endl;
    cout<<rand()<<endl;
    }
    输出结果:
    41
    18467
    41
    18467
    45
    29216
    45
    29216
    由于通过srand(1)和srand(2)设置了不同的随机数种子
    搜索

    所以产生了两组不同的随机数,这组数与种子相对应。

    那么怎么利用rand产生真正的“随机数”呢?
    答案是通过srand(time(NULL))使得随机数种子随时间的变化而变化。
    PS:time函数可以获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。

    转载于:https://www.cnblogs.com/ghostTao/p/3967916.html

    展开全文
  • issue with srand

    2020-12-26 00:53:51
    <p>srand(0) generates a seed, but srand with anything else as a parameter creates a different but non unique seed. I can only obtain two different seeds. Any ideas? Here’s a link to my project ...
  • C - srand

    千次阅读 2020-02-22 12:56:14
    C - srand https://yongqiang.blog.csdn.net/article/details/104429546 Defined in header <stdlib.h> - 定义于头文件 <stdlib.h> 1. srand void srand (unsigned int seed); Initialize random number...

    C - srand

    https://yongqiang.blog.csdn.net/article/details/104429546

    Defined in header <stdlib.h> - 定义于头文件 <stdlib.h>

    1. srand

    void srand (unsigned int seed);

    Initialize random number generator - 初始化伪随机数生成器 (函数)

    2. Example

    2.1 srand

    //============================================================================
    // Name        : srand
    // Author      : Yongqiang Cheng
    // Version     : Version 1.0.0
    // Copyright   : Copyright (c) 2019 Yongqiang Cheng
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(void)
    {
    	int random_variable = 0;
    
    	srand(time(0)); // use current time as seed for random generator
    	random_variable = rand();
    	printf("Random value on [0,%d]: %d\n", RAND_MAX, random_variable);
    
    	return 0;
    }
    
    

    Possible output:

    Random value on [0,2147483647]: 1345030193
    
    

    2.2 srand

    //============================================================================
    // Name        : srand
    // Author      : Yongqiang Cheng
    // Version     : Version 1.0.0
    // Copyright   : Copyright (c) 2019 Yongqiang Cheng
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    
    #include <stdio.h>      /* printf, NULL */
    #include <stdlib.h>     /* srand, rand */
    #include <time.h>       /* time */
    
    int main()
    {
    	printf("First number: %d\n", rand() % 100);
    	srand(time(NULL));
    	printf("Random number: %d\n", rand() % 100);
    	srand(1);
    	printf("Again the first number: %d\n", rand() % 100);
    
    	return 0;
    }
    
    

    Possible output:

    First number: 83
    Random number: 66
    Again the first number: 83
    
    

    2.3 srand

    //============================================================================
    // Name        : srand
    // Author      : Yongqiang Cheng
    // Version     : Version 1.0.0
    // Copyright   : Copyright (c) 2019 Yongqiang Cheng
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    
    #include <stdio.h>      /* printf, NULL */
    #include <stdlib.h>     /* srand, rand */
    #include <time.h>       /* time */
    
    int main()
    {
    	printf("the first number: %d\n", rand() % 100);
    	printf("the second number: %d\n", rand() % 100);
    	printf("the third number: %d\n\n", rand() % 100);
    
    	srand(time(NULL));
    	printf("random number 1: %d\n", rand() % 100);
    	printf("random number 2: %d\n", rand() % 100);
    	printf("random number 3: %d\n\n", rand() % 100);
    
    	srand(1);
    	printf("again the first number: %d\n", rand() % 100);
    	printf("again the second number: %d\n", rand() % 100);
    	printf("again the third number: %d\n", rand() % 100);
    
    	return 0;
    }
    
    

    Possible output:

    the first number: 83
    the second number: 86
    the third number: 77
    
    random number 1: 58
    random number 2: 10
    random number 3: 59
    
    again the first number: 83
    again the second number: 86
    again the third number: 77
    
    

    References

    https://en.cppreference.com/w/c/numeric/random/srand
    http://www.cplusplus.com/reference/cstdlib/srand/

    展开全文
  • srand rand

    2018-06-28 00:14:00
    #include <stdlib.h> srand( (time(0)); rand()%100; 转载于:https://www.cnblogs.com/henryliublog/p/9236669.html
  • Srand by default

    2020-12-01 13:34:15
    <div><p>Some people found that it is not KISS nor POLA to have <code>rand</code> that is ...s just call <code>srand</code> during the init of Sys.</p><p>该提问来源于开源项目:nitlang/nit</p></div>
  • srand和rand

    2020-05-25 20:47:37
    srand(seed)和rand() 通过调用srand(seed)可以设置rand()的种子值,每一次调用rand()就是产生随机数,但是第二次调用rand()产生的随机数还是一样的,因为rand()调用之前,会查看seed值来初始化它的值,没有设置的话,每次...
  • rand和srand

    2021-03-22 08:46:18
    欧皇是如何产生的???? 一.preparation ·先吐槽一下,大学班里面找人参加活动,直接在网上找一个随机数程序抽学号 /(ㄒoㄒ)/~~ 上微积分和C++的时候,...rand貌似是random的缩写,那么为啥还需要srand呢,rand是真的
  • 本文主要对C语言中srand和rand的用法进行详解。
  • C语言srand函数

    千次阅读 2018-10-08 16:57:58
    srand(无符号整型)函数:生成随机数种子,rand函数要根据此种子再生成随机数 srand(time(NULL)); //time(NULL);使用时要包含time.h文件;获取当前时间戳。
  • VC中随机函数最常用就是srand和rand(实际上是属于标准C函数),其中srand负责设置随机种子,rand则负责生成随机数。使用此二随机函数需要包含头文件
  • srand 函数

    2012-09-23 15:32:43
    srand函数是随机数发生器的初始化函数。  原型:void srand(unsigned seed);  用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1)...
  • c语言srand函数

    2018-04-09 16:09:35
    srand((unsigned)time(NULL))是初始化随机函数种子:1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会...
  • Srand使用

    2012-06-09 18:02:53
    srand((unsign)time(null))随机产生一个rand函数的初始值,具体如下: int x = rand(); a = (int)x%(max-min+1)+min;//随机数的范围为[min,max] eg:  Srand((unsigned)time(NULL));  int a = rand()%(100-...
  • rand 和 srand 问题

    2019-09-23 22:41:53
    2、srand值在快速调用时,time(NULL)可能不会更新,因为时间戳是以微秒计算的,所以微秒之内的如果再次执行srand和rand,则会得到相同的随机值序列 3、每次设置随机种子后,rand输出会自动复位到第一个初始值,种子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,658
精华内容 3,063
热门标签
关键字:

srand