zoukankan      html  css  js  c++  java
  • 产生随机数rand()和srand()函数

    srand 初始化随机种子,rand 产生随机数。

    1、rand函数

    头文件: <stdlib.h>

    定义函数:int rand(void)

    函数功能:产生随机数

    函数说明:因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以,在一定的范围里可看成是随机的。rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

    返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。且0-RAND_MAX每个数字被选中的机率是相同的。

    rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。

     1 #include<stdlib.h>
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int i,j;
     7 
     8     //产生1-10之内的随机数
     9     //但每次运行程序产生的随机数都是一样的
    10     for(i=0; i<10; i++)
    11     {
    12         j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
    13         printf("%d ",j);
    14     }
    15     printf("
    ");
    16 
    17     return 0;
    18 }

    2、srand函数

    头文件:<stdlib.h>

    定义函数:void srand (unsigned int seed);

    函数说明:srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用getpid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

     1 #include<stdlib.h>
     2 #include <stdio.h>
     3 
     4 int main(void)
     5 {
     6     int i,j;
     7 
     8     //产生1-10之内的随机数
     9     //但每次运行程序产生的随机数都是一样的
    10     for(i=0; i<10; i++)
    11     {
    12         j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
    13         printf("%d ",j);
    14     }
    15     printf("
    ");
    16 
    17     return 0;
    18 }
  • 相关阅读:
    在SQLite中使用索引优化查询速度
    SQLite支持的SQL数据操作
    left (outer) join , right (outer) join, full (outer) join, (inner) join, cross join 区别
    深入理解Android内存管理原理(六)
    Merge Sorted Array
    Sort Colors
    Construct Binary Tree from Preorder and Inorder Traversal
    Binary Tree Postorder Traversal
    Symmetric Tree
    Rotate Image
  • 原文地址:https://www.cnblogs.com/Long-w/p/9435838.html
Copyright © 2011-2022 走看看