wufengv5

1.rand()每次的随机都一样,范围是0到RAND_MAX;RAND_MAX是宏定义,在stdlib.h中定义,大小是32767

#include <stdio.h>
#include <stdlib.h> //rand()的头文件,产生随机数的范围是  0到RAND_MAX 

int main()
{
    int i;
    for (i=0; i<10; i++)
    { 
        printf("%d ", rand());
    }
    printf("\nRAND_MAX = %d",RAND_MAX);//RAND_MAX在头文件stdlib.h里定义的
    return 0;
}

 输出的结果(即产生的随机数)每次都一样:

 

2.rand()和srand()配合使用,每次产生的随机数不一样,范围仍是0到RAND_MAX

 stdlib.h头文件中有宏#define RAND_MAX 0x7fff=32768, rand()产生的最大数是32767最小是0

#include <stdio.h>
#include <stdlib.h> 
#include <time.h>  //time()的头文件

int main()
{
    int i;
    srand((int)time(0));//避免每次都产生一样的随机数
    for (i=0; i<10; i++)
    { 
        printf("%d ", rand());
    }
    return 0;
}

#include <stdio.h>
#include <stdlib.h> 
#include <time.h>  //time()的头文件

int main()
{
    int i;

    time_t t;
    time(&t);
    srand((unsigned)time(&t));//用时间作为种子,避免每次产生的都是一样的随机数

    for (i=0; i<10; i++)
    { 
        printf("%d ", rand());
    }
    return 0;
}

 

3.总结

其实根本没有真正的随机数。因为通过实验发现,产生的第一个随机数总在一个小范围内波动。

分类:

技术点:

相关文章:

  • 2021-12-09
  • 2019-01-11
  • 2022-01-01
  • 2021-11-25
  • 2022-12-23
  • 2022-12-23
  • 2021-10-01
  • 2021-10-01
猜你喜欢
  • 2021-12-10
  • 2021-09-19
  • 2022-01-07
  • 2021-08-03
相关资源
相似解决方案