zoukankan      html  css  js  c++  java
  • 随机数

    生成随机数需要调用两个函数:srand(srandom)和rand(random)。rand和random的区别就是返回类型不同,int和long int(虽然在普通的32位机上效果是一样的)。srand是种子发生器,保证每次得到的数据都是不同的。给个例子:

     1 #include <stdlib.h>
     2 #include <stdio.h>
     3 #include <time.h>
     4 
     5 int main()
     6 {
     7     int rnumber[100] = {0};
     8     srand(1);   //这里写不写都行,因为种子为一个确定值,所产生的随机数一直都是确定的。就好比只使用了rand()
     9     int i;
    10     for(i=0;i<10;i++)
    11     {
    12         rnumber[i] = rand() % 100;  //得到100以内的数
    13         printf("随机数:%d
    ",rnumber[i]);
    14     }
    15 }

    执行了好多次的结果都为:

    随机数:83
    随机数:86
    随机数:77
    随机数:15
    随机数:93
    随机数:35
    随机数:86
    随机数:92
    随机数:49
    随机数:21

    我们把srand(1)修改为:

    srand((int) time(0));

    结果发现每次运行都会产生不同的10个随机数。这就是上面所说的srand函数为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time 函数来获得系统时间来作为随机数的种子。

  • 相关阅读:
    [Trie][并查集]JZOJ 5822 量子纠缠
    [模拟]JZOJ 5820 非法输入
    SAM模板
    [树形DP]JZOJ 5819 大逃杀
    [MST][dij]JZOJ 5818 做运动
    [暴力]JZOJ 5817 抄代码
    [概率期望][树形DP][LCA]JZOJ 5814 树
    认证组件
    注册接口
    视图家族 & 路由组件
  • 原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/10899530.html
Copyright © 2011-2022 走看看